Укажите StrictHostKeyChecking no
в своем /etc/ssh/ssh_config
файле, где это будет глобальная опция, используемая каждым пользователем на сервере. Или установите его в своем ~/.ssh/config
файле, где он будет по умолчанию только для текущего пользователя. Или вы можете использовать его в командной строке:
ssh -o StrictHostKeyChecking=no -l "$user" "$host"
Вот объяснение того, как это работает man ssh_config
(или посмотрите эту более свежую версию ):
StrictHostKeyChecking
Если для этого флага установлено значение «да», ssh никогда не будет автоматически добавлять ключи хоста в $HOME/.ssh/known_hosts
файл и отказывается подключаться к хостам, чей ключ хоста был изменен. Это обеспечивает максимальную защиту от атак троянских коней, однако может раздражать, если /etc/ssh/ssh_known_hosts
файл плохо обслуживается или часто устанавливаются соединения с новыми хостами. Эта опция заставляет пользователя вручную добавлять все новые хосты. Если этот флаг установлен на «нет», sshавтоматически добавит новые ключи хоста в файлы известных хостов пользователя. Если для этого флага установлено значение «спрашивать», новые ключи хоста будут добавлены в известные хост-файлы пользователя только после того, как пользователь подтвердит, что это именно то, что он действительно хочет сделать, и
ssh откажется подключаться к хостам, чей ключ хоста был изменен. , Ключи известных хостов будут проверяться автоматически во всех случаях. Аргумент должен быть «да», «нет» или «спросить». По умолчанию это «спросить».
ssh-keyscan
- Соберите SSH открытые ключиЕсли вы уже знаете список хостов, к которым вы будете подключаться, вы можете просто выполнить:
Вы можете дать ему
-H
возможность хэшировать результаты, например, ssh по умолчаниюКроме того, вы можете дать
-t keytype
были KeyType этоdsa
,rsa
илиecdsa
если у вас есть предпочтения, какой тип ключа , чтобы захватить вместо значения по умолчанию.После того, как вы запустите
ssh-keyscan
его, он предварительно заполнит ваш файл known-hosts, и у вас не будет ssh, запрашивающего у вас разрешение на добавление нового ключа.источник
ssh-keyscan -H myhost >> ~/.ssh/known_hosts
или для всего сервера/etc/ssh/ssh_known_hosts
Вы можете добавить отпечаток к каждому известному серверу каждого сервера. Для одного пользователя:
источник
Игнорировать Хост
Игнорировать HostKeyChecking. Для этого я использую, например:
Добавить хост
Добавьте отпечаток хоста / сервера
.ssh/known_hosts
до первого подключения. Это более безопасный способ.источник
/dev/null
? Не лучше ли сделатьssh -oStrictHostKeyChecking=no user@example.net
один раз, чтобы вставить отпечаток сервера в$HOME/.ssh/known_hosts
файл, поэтому последующие подключения будут выполняться без запроса подтверждения?Выполните следующий фрагмент перед попыткой.
ps: строго не для производственных серверов, остерегайтесь ManInMiddle
источник
Мне нравится ответ Тима на одно нетипичное, однако, если это хост, к которому вы собираетесь регулярно подключаться, я бы создал запись в вашем ~ / .ssh / config (создайте ее, если файл не существует).
источник