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

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

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

Я собрал эти инструкции, прибегая к помощи, а также читая другие ТАК вопросы и ответы.

Проблема в том, что каждый раз, когда я подключаюсь к диапазонам адресов выше, например, 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? И использовать эти файлы конфигурации соответственно?

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

2 ответа2

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

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

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .