На этот вопрос уже есть ответ здесь:
Я написал несколько скриптов и хочу добавить удаленный хост в файл known_hosts
без какого-либо взаимодействия. Я могу выполнить команду типа ssh -o "StrictHostKeyChecking no" root@10.x.x.x
, которая добавит ключ удаленного хоста в мои известные хосты, но за этим последует запрос пароля ssh. Есть ли способ сделать это без запроса пароля?
Как упоминалось в другом ответе, ssh-keyscan
идеально подходит, но если по какой-то причине вы не можете этого сделать: вы можете отключить аутентификацию по паролю, установив параметр
PasswordAuthentication no
в файле конфигурации (например, .ssh / config
), или передача опции -o PasswordAuthentication
в командной строке, и таким образом предотвращает запрос пароля ssh. Излишне говорить, что сервер рассматривает это как неудачную попытку входа в систему, если только у вас не настроен другой метод аутентификации, при котором позволяет входить в систему.
Как вы уже отметили, изменение значения Параметр StrictHostKeyChecking
из спрашивает
, по умолчанию, на нет
(или да
, если вы хотите повысить безопасность), чтобы избежать запроса о том, нужно ли вы хотите добавить ключ хоста в .ssh / known_hosts
.
Используйте ssh-keyscan 10.x.x.x >> / path / to / known_hosts / file
(используйте -H для большей безопасности, в зависимости от контекста).