Ответ 1
Если они действительно являются новыми хостами, и вы не можете заранее добавить ключи к known_hosts
(см. ответ York.Sar), то вы можете использовать эту опцию:
-e "ssh -o StrictHostKeyChecking=no"
Я пытаюсь создать систему, которая автоматически копирует файлы с одного сервера на многие серверы. В рамках этого я использую rsync и устанавливаю ключи SSH, которые работают правильно.
Моя проблема в том, что когда он пытается подключиться к новому серверу в первый раз, он попросит подтверждение. Есть ли способ автоматически принять?
Пример команды/вывода:
rsync -v -e ssh * [email protected]:/data/
The authenticity of host 'someip (someip)' can't be established.
RSA key fingerprint is somerandomrsakey.
Are you sure you want to continue connecting (yes/no)? yes
Если они действительно являются новыми хостами, и вы не можете заранее добавить ключи к known_hosts
(см. ответ York.Sar), то вы можете использовать эту опцию:
-e "ssh -o StrictHostKeyChecking=no"
Вы можете заранее добавить этот ключ хоста к known_hosts следующим образом:
ssh-keyscan $someip >> ~/.ssh/known_hosts
Я знаю, что это было задано 3 года назад, но это было в верхней части моего поиска в Google, и я не смог заставить ни одно из этих решений в середине сценария Vagrant работать правильно для меня. Поэтому я хотел поместить здесь метод, который нашел где-то еще.
В этом решении говорится об обновлении файла ~/.ssh/config
или /etc/ssh/ssh_config
следующими блоками кода.
Чтобы отключить проверку ключа хоста для определенного хоста (например, remote_host.com):
Host remote_host.com
StrictHostKeyChecking no
Чтобы отключить проверку ключа хоста для всех хостов, к которым вы подключаетесь:
Host *
StrictHostKeyChecking no
Чтобы избежать проверки ключа хоста и не использовать файл known_hosts для 192.168.1. * подсети:
Host 192.168.0.*
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
Я надеюсь, что это поможет кому-то еще, кто сталкивается с этой проблемой.