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

1435
amn

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

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

0
Таким образом, ваша единственная проблема сейчас заключается в том, как избавиться от этого сообщения после подключения? Marki555 8 лет назад 0
Да, хотя тот факт, что я получаю сообщение, может означать, что я поступил неправильно. Еще не пробовал `CheckHostIP`. amn 8 лет назад 0
Я попытался добавить `CheckHostIP = no` к правилу, приведенному выше, но, похоже, оно не имеет немедленного эффекта - я все еще получаю сообщение, как будто что-то было" постоянно "добавлено (в` / dev / null`). Именно потому, что я забочусь о безопасности в целом, это сообщение беспокоит меня, будучи ложным негативом и загромождая мое чтение информации в терминале. amn 8 лет назад 0
sshd не позволяет отключить большинство своих функций безопасности (например, подключение с использованием нулевого шифра). Одна из возможностей - перекомпилировать sshd с отключенными этими проверками. Marki555 8 лет назад 0
Ок, понятное решение. Должен ли я использовать `rsh` в этом случае, поскольку безопасность обеспечивается VPN-аутентификацией? Насколько я понимаю, это может быть именно то, что я хочу тогда? amn 8 лет назад 0
Да, вы можете попытаться использовать `rsh`, если это разрешено вашими политиками безопасности ... Кстати, VPN защищает только ваше соединение с целевой локальной сетью, но не защищает вас от атак злоумышленников на этом LAN. Marki555 8 лет назад 0
Вы также можете попробовать список рассылки openssh или, возможно, comp.security.ssh barlop 8 лет назад 0

2 ответа на вопрос

1
davidgo

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

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

Просто чтобы убрать это с дороги - я знаю о последствиях игнорирования проверок подлинности. Я полагаю, что эти последствия не имеют никакого значения в моем случае, поскольку вся возможность доступа к узлам за упомянутыми адресами впервые устанавливается после подключения к VPN через туннельную аутентификацию SSL (клиент VMWare VPN). Кроме того, я подозреваю, что само VPN-соединение имеет SSL-туннелирование. amn 8 лет назад 0
У меня есть целая последовательность узлов, которые являются частью «облака» обработки, и создание псевдонимов для каждого из них невозможно. Они также никак не связаны с моей службой DNS, поэтому, если я не помечаю их, единственный способ связаться с ними - через IP-адреса. Должен ли я понять, что SSH не может просто оставить всю свою проверку host-ip в одиночку? Похоже, что его можно частично обойти, но все это имеет ограниченную полезность, в то время как актуальная проблема ядра - установление SSH-соединения с сервером, который «роуминг» через пространство IP-адресов - не может быть легко решена? amn 8 лет назад 0
1
SoysauceShow

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

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: форматирование

Похожие вопросы