Подтвердить что ты не робот

Как автоматически принимать удаленный ключ при rsyncing?

Я пытаюсь создать систему, которая автоматически копирует файлы с одного сервера на многие серверы. В рамках этого я использую 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
4b9b3361

Ответ 1

Если они действительно являются новыми хостами, и вы не можете заранее добавить ключи к known_hosts (см. ответ York.Sar), то вы можете использовать эту опцию:

-e "ssh -o StrictHostKeyChecking=no"

Ответ 2

Вы можете заранее добавить этот ключ хоста к known_hosts следующим образом:

ssh-keyscan $someip >> ~/.ssh/known_hosts

Ответ 3

Я знаю, что это было задано 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

Я надеюсь, что это поможет кому-то еще, кто сталкивается с этой проблемой.