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