Отключить StrictHostKeyChecking в ssh

12

Я пытаюсь подключиться к хосту Linux с помощью sshи получаю следующую ошибку

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

Я хотел бы отменить это, но не могу найти какую-либо комбинацию вариантов для этого.

Я, вероятно, установил StrictHostKeyChecking несколько лет назад, но не помню как.

Я проконсультировался, man sshкоторый сообщает мне, что файл конфигурации всей системы есть, /etc/ssh/ssh_configи по умолчанию для файла конфигурации для каждого пользователя ~/.ssh/configне существует ни одного.

РЕДАКТИРОВАТЬ Чтобы уточнить мой вопрос, вариант четко установлен. Я пытаюсь обнаружить

  1. Где хранятся параметры (у меня нет файлов, упомянутых на странице руководства, что, похоже, неправильно).
  2. Как изменить параметры.

Я не смотрю на то, как обойти проблему, с которой я столкнулся (я знаю, что могу редактировать файл known_hosts, но это утомительно каждый раз, когда я пробую новый сервер).

Milliways
источник
Это /etc/ssh_configна моем.
сборный
@sborsky У меня это тоже (что отличается от человека), но все варианты закомментированы.
Milliways
Это означает, что по умолчанию, который согласно man-странице ask. При изменении ключа хоста клиент ssh не будет подключаться, пока не StrictHostKeyCheckingбудет установлено значение no. Если ключ хоста меняется не очень часто, я бы предложил удалить этот ключ хоста из вашего, ~/.ssh/known_hostsвместо того, чтобы изменять конфигурацию.
сборный
1
Сначала вы должны выяснить, почему это было изменено. Если вы не изменили его, то это может быть атака MitM, и тогда вам, конечно, не следует разрешать этот ключ хоста!
Sarge Borsch
примечание: после удаления всех записей для данного хоста .ssh/known_hostsя продолжал получать предупреждение, пока не обнаружил строку с ошибками в другом файле с именем .ssh/known_hosts2. по-видимому, OS X использует оба
billynoah

Ответы:

17

Чтобы отключить строгую проверку хоста в OS X для текущего пользователя, создайте или отредактируйте ~ / .ssh / config и добавьте следующие строки:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Типичным примером для хостов в вашей локальной сети может быть:

Host 10.1.1.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

В зависимости от вашего использования ssh я не рекомендую отключать строгую проверку ключа хоста для всех хостов.

Если вы просто хотите удалить запись для 10.1.1.20, откройте ~ / .ssh / known_hosts в выбранном вами редакторе и удалите соответствующую строку «10.1.1.20 ssh-rsa public-key $ »

klanomath
источник
Также, похоже, работает без строки / dev / null.
John2095
6

Вы можете просто попробовать его как есть, без настройки, просто в командной строке:

ssh -o StrictHostKeyChecking=no hostname

Но я не думаю, что это все, что вам нужно. Если вы хотите игнорировать всю проверку хост-ключа, вам нужно настроить known_hostsфайл /dev/nullтак, чтобы ничего не было сохранено:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

или в /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Jakuje
источник
1-й до сих пор не позволил мне подключиться, но ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnameсделал. Я до сих пор не могу найти ГДЕ установлен StrictHostKeyChecking!
Milliways
По умолчанию используется значение «да», поэтому его не нужно нигде устанавливать.
Jakuje
Документация утверждает, что по умолчанию да
Milliways
выбор в качестве решения помог бы, если бы он помог решить вашу проблему;)
Jakuje