Есть ли способ временно игнорировать мой ~/.ssh/known_hosts
файл?
mbp:~ alexus$ ssh 10.52.11.171
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/alexus/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/alexus/.ssh/known_hosts:155
RSA host key for 10.52.11.171 has changed and you have requested strict checking.
Host key verification failed.
mbp:~ alexus$
НОТА:
... по нескольким ответам / комментариям я понимаю, что мой вопрос немного вводит в заблуждение, настолько короток, что это ожидаемое поведение), поэтому это нормально (в моем случае) есть веская причина, почему я хочу увидеть "игнорируй")
Ответы:
Вы можете использовать,
ssh -o StrictHostKeyChecking=no
чтобы отключить проверку наknown_hosts
мгновение. Но я бы посоветовал против этого. Вы должны действительно проверить, почему ключ хоста изменился.Другой вариант - добавить конкретную запись для вашего
~/.ssh/config
хоста. Это может быть правильным подходом, если у вас есть определенный хост, который генерирует новые ключи хоста каждый раз, когда он перезагружается, и он перезагружается по уважительной причине несколько раз в день.источник
-o StrictHostKeyChecking=no
удаляет возможность войти с паролем. Разве отсутствие флага для этого не идет вразрез с принципами Unix, позволяющими пользователю принудительно управлять поведением? В настоящее время я пытаюсь войти на локальный компьютер с локальным IP. Ключ хоста изменился, потому что я переформатировал упомянутую машину. Все здесь имеет смысл, и ничто не является угрозой безопасности в данных обстоятельствах.Чтобы полностью игнорировать ваш известный файл hosts в среде POSIX, установите параметры
GlobalKnownHostsFile
иUserKnownHostsFile
в/dev/null
:ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null user@host
Установка этого
StrictHostKeyChecking=no
параметра позволит вам подключиться, но SSH по- прежнему будет отображать предупреждение :ssh -o StrictHostKeyChecking=no user@host
Как уже отмечали другие, вероятно, лучше рассмотреть основную проблему. Вы можете рассмотреть аутентификацию сертификата SSH для проверки хостов, например.
источник
-o StrictHostKeyChecking=no
в дополнение к в-o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null
вариантах - для окончательного ответа:ssh -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
?Если вы переустановили сервер и, следовательно, Идентификация изменилась, вам просто нужно удалить указанную строку 155 с
/Users/alexus/.ssh/known_hosts
и продолжить.Если вы переключаетесь между разными частными сетями, вы должны использовать вместо них имена хостов, так как клиент ssh также будет сохранять ключи в зависимости от имени хоста. Добавьте что-то вроде этого к себе
/etc/hosts
:а затем использовать
ssh server1
при подключении к подсети 1 иssh server2
при подключении к подсети2. Таким образом, оба сервера могут иметь разные хост-ключи.источник
-o StrictHostKeyChecking=no
работает только в том случае, если хост отсутствует в файле known_hosts.Я думаю, что это чище (без предупреждений), если вы ожидаете, что ключ хостов изменится, возможно, из-за клонирования vm, для принудительного игнорирования таких хостов, как это:
источник
Некоторые люди говорят, что это неправильно, вы не должны делать это и так далее, но мне нужно это также, чтобы снова и снова тестировать несколько встроенных устройств. Вы должны отключить
StrictHostKeyChecking=no
, это правильно, но также сбросить файл известных хостов в/dev/null
. Вот пример с автологином иps
на удаленном устройстве.источник
Войдите на все ваши серверы (и, если RedHat),
rm -f /etc/ssh/ssh_host_*
а затем перезапустите SSHD.Это создаст новые ключи хоста SSH, которые не нужно игнорировать.
Я могу вспомнить только один случай, когда ключи SSH, клонированные на нескольких серверах, не только желательны, но и не выдают никаких предупреждений. Кратно одной записи. Все хосты с записью A имеют одинаковый ключ.
источник