Я пытаюсь настроить автоматический, развертываются из моего сценария, который является, пробежал Travis CI, таким образом, мне нужно к SSH в мой сервер без любых подсказок.
Мой развертывать сценарий похож на это:
ssh ubuntu@123.123.123 -i ./travis/id_rsa <<EOF
echo "PRINT SOMETHINGGGGGGGGGGGGGGGGG"
EOF
Это работает локально, потому что я уже имею SSHed к серверу прежде и сказал "да" всем подсказкам.
На моем сервере (IP-адрес: 123.123.123), у меня есть пользователь ubuntu
.
Я пытался установить StrictHostKeyChecking no
в моем /home/ubuntu/.ssh/config
файл:
Host *
StrictHostKeyChecking no
Однако даже с этой установкой его продолжает просить у меня мой цифровой отпечаток.
The authenticity of host '123.123.123 (123.123.123)' can't be established.
ECDSA key fingerprint is 87:a8:8a:50:9c:a9:87:3e:c5:17:6d:b0:f1:28:7e:d3.
Are you sure you want to continue connecting (yes/no)?
Как я мешал бы ему спросить?
Из документов:
StrictHostKeyChecking
[...], Если этот флаг будет установлен на "нет" или “прочь”, то ssh автоматически добавит новые ключи хоста к пользователю известные файлы hosts и позволит соединениям с хостами с измененным hostkeys продолжаться согласно некоторым ограничениям. [...]
Необходимо добавить что, установив на клиенте, любом путем помещения строк
# for all hosts
Host *
StrictHostKeyChecking no
или
# for a particular host
Host 123.123.123.123
StrictHostKeyChecking no
в Ваше локальное ~/.ssh/config
.
Можно также предоставить опцию непосредственно в Вашем ssh
команда (таким образом перезаписывающий любые настройки в файле конфигурации):
ssh -o StrictHostKeyChecking=no ubuntu@123.123.123.123 -i ./travis/id_rsa
Ключ хоста говорит клиенту, что целевой узел является на самом деле хостом, которым он симулирует быть. В теории Вы могли вызвать администратора сервера и попросить, чтобы он (по телефону или что-то) сказал Вам вывод ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
и затем сравните ту строку с цифровым отпечатком, показанным на Вашем клиенте. Если они соответствуют, то Вы в безопасности и можете добавить тот ключ к Вашему known_hosts
файл. С StrictHostKeyChecking=no
Вы просто говорите клиенту просто верить/доверять целевой машине и принимать ее ключ.