У меня есть настройка сборки кода AWS, где вы хотите получить доступ к экземпляру EC2 ubuntu, оба находятся в одной VPC и частной подсети. Хотите выполнить команду от сборки кода к экземпляру, используя SSH, но получаю ошибку ниже при попытке выполнить команду на удаленном экземпляре:
$ ssh -o 'PubkeyAuthentication no' ubuntu@X.X.X.X uname
Host key verification failed.
Я также попытался создать файл .pem и вставил открытый ключ в новый файл pem, изменил его разрешение и использовал его. Но безуспешно.
$ssh -i "remote-instance.pem" ubuntu@X.X.X.X uname
Host key verification failed.
Можно ли добиться того же с помощью некоторых опций?
Как вы знаете, впервые ssh
к удаленному хосту он спрашивает вас, хотите ли вы сохранить ключ удаленного хоста к ~/.ssh/known_hosts
. Каждый раз, когда вы впоследствии обращаетесь к удаленному хосту ssh
подтверждает полученный ключ хоста против ~/.ssh/known_hosts
.
Однако когда ssh
вбегает CodeBuild или какая-то другая неинтерактивная установка, он не может спросить, принимать ли удаленный ключ (потому что в неинтерактивном сеансе спрашивать не у кого), и чтобы быть в безопасности, он не работает с Ошибка проверки ключа хоста
У вас есть два варианта, как это исправить:
Более безопасный - предоставить ключ хоста сервера Ubuntu вашему CodeBuild и сохранить его в known_hosts
файл где ssh
можете проверить это. Убедитесь, что он находится на правильном пути с правильными правами собственности и разрешениями.
Менее безопасный это отключить проверку:
ssh -o StrictHostKeyChecking=no {your-ubuntu-server}
Надеюсь, это поможет :)
Вам действительно нужна PubkeyAuthentication, которая будет выполняться по умолчанию, поэтому не указывайте «-o PubkeyAuthentication = no». Файл pem, на который указывает "-i", должен быть закрытым ключом, а не открытым ключом. Открытый ключ уже будет на вашем сервере Ubuntu.