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?
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:
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.
moins sécurisé est de désactiver le chèque:
ssh -o StrictHostKeyChecking=no {your-ubuntu-server}
J'espère que cela pourra aider :)
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.