Как заставить ssh не проверять подлинность хоста подключения?

Как заставить ssh не проверять подлинность хоста подключения?

Мне регулярно приходится подключаться к хостам за несколькими сетями VPN и провайдерами, адресуемыми как или 10.0.0.*То 192.168.*.есть, каждая сеть VPN может свободно резервировать любой из этих диапазонов при подключении. По этой причине я не могу предположить привязать адрес 10.0.0.*к определенному хосту, потому что это будет зависеть от того, к какому VPN я подключен. Или даже разрешить мой беспроводной маршрутизатор вместо этого!

По этой причине я явно отключил строгую проверку ключей для хостов с этими «интранет»-адресами, соответствующими указанным выше, в моем файле ~/.ssh/config:

Host 192.168.* 10.0.0.*
    StrictHostKeyChecking=no
    UserKnownHostsFile=/dev/null

Я нашел эти инструкции в Google, а также прочитал другие вопросы и ответы на SO.

Проблема в том, что каждый раз, когда я подключаюсь к диапазонам адресов, указанным выше, например ssh 10.0.0.16, он мне сообщает:

Warning: Permanently added '10.0.0.16' (RSA) to the list of known hosts.

что, честно говоря, не соответствует действительности, в силу повсеместности /dev/null(которую я лично нахожу часто используемой как уродливый хак) - нет постоянства добавления чего-либо в /dev/null, не так ли? Это просто захламляет мой терминал и сбивает меня с толку каждый раз, когда я это там вижу.

Есть ли способ заставить ssh игнорировать отпечатки пальцев и не выводить запутанное сообщение выше? Я не хочу этого alias ssh='ssh 2>/dev/null'или что-то в этом роде безумное. Я поступил неправильно? Какие у меня есть варианты? Возможно, есть какие-то другие варианты? /dev/nullПо-моему, это хак, и именно поэтому меня наказывают.

Что яне хочу делатьявляется псевдонимом узлов для некоторых имен хостов на стороне клиента в моем ~/.ssh/config, как вэтот ответ. Это происходит по двум причинам:

  • Я не могу просто настроить ssh на получение псевдонима (используя директиву Host) для разрешения определенного адреса, например, именно потому, что адреса повторно используются разными провайдерами VPN, к которым я подключаюсь, — 10.0.0.15например, это может быть один хост при подключении к одному VPN и другой при подключении к другому VPN. Должен ли я «разделить» мой ~/.ssh/configна несколько, по одному для каждого VPN? И использовать эти файлы конфигурации соответствующим образом?

  • Узел, о котором идет речь, может быть частью довольно большой группы узлов в той же интрасети, "облака", как это сейчас называют. Количество узлов может доходить до сотни. Я не совсем уверен, как "массово сопоставить" несколько таких узлов с их соответствующими адресами?

решение1

Я знаю, что это старый вопрос, но я искал ответ на него. Итак, для всех будущих гуглеров, вот что я нашел.

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host

Вы можете привязать это к псевдониму, чтобы облегчить себе задачу.

alias ssh-nocheck='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'

ssh-nocheck user@host

Нашел ответ наhttps://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html

-редактирование: форматирование

решение2

Игнорируя проверки подлинности, вы подвергаете себя опасности атаки типа «злоумышленник посередине», поэтому вам, возможно, стоит передумать.

Возможно, вам захочется изменить конфигурацию SSH, установив «CheckHostIP» на «no», а затем настроив записи в файле hosts для каждого хоста и подключаясь по имени, а не по хостам. (Примечание: я не пробовал это, но я думаю, что это сработает).смотретьздесь тоже.

Связанный контент