
Мне регулярно приходится подключаться к хостам за несколькими сетями 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 для каждого хоста и подключаясь по имени, а не по хостам. (Примечание: я не пробовал это, но я думаю, что это сработает).смотретьздесь тоже.