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