Я хочу получить доступ к моему новому виртуальному серверу в облаке с помощью ssh из сценария установки, чтобы он не требовал взаимодействия с пользователем. Когда я использую простой
ssh -i keys.pem user@host.com
он говорит мне, что это новый хост, доверяю ли я ему? Поскольку я только что создаю это, я хочу доверять ему без лишних слов.
Тогда я использовал
-o UserKnownHostsFile = / dev / null -o StrictHostKeyChecking = нет
но это не устанавливает соединение, так что последующие запросы отправляются автоматически. Он не создает запись в known_hosts.
Как сделать так, чтобы ssh сначала подключался не интерактивно, а потом постоянно?
Также возможно заранее добавить ключи хоста к «известным хостам», чтобы не удивить ssh. Например.
ssh-keyscan example.com >>~/.ssh/known_hosts
Это по-прежнему небрежно, поскольку вы безоговорочно доверяете ключам с первого раза. Но это обеспечивает немного лучшую безопасность, поскольку у вас есть эти ключи для проверки и получения предупреждения, когда они меняются при последующих попытках подключения, что может быть признаком вмешательства.
Вы пробовали просто использовать следующее?
$ ssh -o StrictHostKeyChecking=no -i keys.pem user@host.com
Я не вижу смысла иметь -o UserKnownHostsFile=/dev/null
также; похоже, это просто предотвращает добавление ключа в ваш файл известных хостов.