web-dev-qa-db-fra.com

SSH: dans le réseau privé Comment accéder à la machine distante de la machine source sans utiliser de clé publique SSH

J'ai AWS CodeBuild Configuration où vous souhaitez accéder à l'instance EC2 Ubuntu, les deux sont dans la même VPC et le même sous-réseau privé. Voulez-vous exécuter la commande à partir de CodeBuild en cas d'utilisation de SSH, mais d'obtenir une erreur ci-dessous, tout en essayant d'exécuter la commande sur l'instance distante:

$ ssh -o 'PubkeyAuthentication no' [email protected] uname
Host key verification failed.

J'ai également essayé de créer le fichier .pem et collé la clé publique du nouveau fichier PEM, a changé sa permission et utilisée. Mais pas de succès.

$ssh -i "remote-instance.pem" [email protected] uname
Host key verification failed.

Est-il possible d'atteindre la même chose avec certaines options?

6
CodeQuestor

Comme vous savez la première fois que vous ssh à un hôte distant, il vous demande si vous souhaitez stocker la touche clé d'hôte distante à ~/.ssh/known_hosts. Chaque fois que vous accédez à l'hôte distant ensuite ssh vérifie reçu clé hôte contre ~/.ssh/known_hosts.

Cependant, lorsque ssh fonctionne dans CodeBuild ou une autre configuration non interactive, il ne peut pas demander d'accepter la clé distante (car il y a Personne à poser dans une session non interactive) et d'être du côté sûr, il échoue avec Échec de la vérification de la clé hôte

Vous avez deux options comment la réparer:

  1. Plus sécurisé est de fournir la clé d'hôte de l'Ubuntu Server à votre codebuild et de le stocker à un known_hosts Fichier où ssh peut vérifier cela. Assurez-vous qu'il est dans le bon chemin avec la bonne propriété et les autorisations.

  2. moins sécurisé est de désactiver le chèque:

    ssh -o StrictHostKeyChecking=no {your-ubuntu-server}
    

J'espère que cela pourra aider :)

11
MLu

Vous voulez que vous souhaitiez PubkeyAuthentication qui sera tenté par défaut, ne spécifiez donc pas "-O PubkeyAuthentication = NO". Le fichier PEM référencé par "-I" devrait être la clé privée, pas la clé publique. La clé publique sera déjà en place sur votre serveur Ubuntu.

1
sean