& ldquo; Идентификация удаленного хоста изменилась & rdquo; предупреждение при подключении через SSH

Я получил это сообщение сегодня, когда пытался войти на свой сервер. Что я должен делать? Что происходит?

$ ssh 10.10.10.69
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
3d:1b:02:9e:b2:b8:f0:f7:c6:4f:94:96:f6:e3:c0:d1.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:8
RSA host key for 10.10.10.69 has changed and you have requested strict checking.Host key verification failed.
18
задан 14.11.2019, 11:55

8 ответов

Я столкнулся с той же проблемой, и если вы не хотите удалять весь файл known_hosts, вы можете выполнить следующую команду:

ssh-keygen -R 10.10.10.69

Нет проблем с удалением известных_хостов. Вам нужно будет только добавлять каждый сервер, к которому вы подключаетесь, в список каждый раз, когда вы подключаетесь к ним. Возможно, вы тоже испортите свои скрипты, потому что хостам еще не доверяют. Предупреждение появляется, когда подпись хоста (компьютер, к которому вы пытаетесь подключиться, генерирует новые ключи, обычно из-за переустановки или ротации ключей.)

0
ответ дан 14.11.2019, 11:55

Из того, что я могу сказать, все эти ответы касаются подавления предупреждения, а не борьбы с ним. Короче говоря, предупреждение говорит о том, что сервер выглядит не так, как раньше; см. https://en.wikipedia.org/wiki/Man_in_the_middle_attack , чтобы узнать, почему это может быть опасно.

Читать man ssh , особенно этот раздел:

ПРОВЕРКА ХОЗЯЙСТВЕННЫХ КЛЮЧЕЙ

При подключении к серверу Впервые пользователю предоставляется отпечаток открытого ключа сервера (если не была отключена опция StrictHostKeyChecking ). Отпечатки пальцев можно определить с помощью ssh-keygen (1) :

   $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

Чтобы быть в безопасности, вы (или кто-то, кому вы доверяете) должны были сначала запустить эту команду на сервере, к которому вы подключаетесь. Это даст вам отпечаток пальца, похожий на тот, который указан в предупреждении в вопросе. Конечно, часто у вас нет этой информации, но если у вас есть основания подозревать, что что-то не так, запуск этой команды - это способ проверить, действительно ли сигнатура сервера действительно изменилась или что-то подозрительное происходит.

0
ответ дан 14.11.2019, 11:56
  • 1
    Подробнее о FingerprintHash: superuser.com/questions/929566/… (т. Е. Sha256 предпочтительнее, но вы можете не знать это значение, если вы не обновились достаточно недавно) – Ken Sharp 14.11.2019, 11:56
  • 2
    Используйте это, если ваш хост предоставляет отпечаток sha256 вместо хеша md5. ssh -o FingerprintHash=md5 example.org – Erwin Wessels 14.11.2019, 11:57

Если вы считаете, что предупреждение является ложным срабатыванием, вы можете удалить свой / root / ssh / known_hosts, чтобы начать новые проверки.

0
ответ дан 14.11.2019, 11:57
  • 1
    Пожалуйста, не делайте этого, вы потеряете других известных хостов. Вместо этого, если вы уверены, что это ложное срабатывание, удалите конкретную строку: & quot; known_hosts: 8 & quot; строка 8 в этом случае. – Brice 14.11.2019, 11:57

Вы недавно переустанавливали ОС на вашем сервере или что-то подобное? Это вызвало бы это.

Чтобы это исправить: http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/

[ 1115] Решение № 1: Удалить ключи с помощью ssh-keygen

Используйте опцию -R, чтобы удалить все ключи, принадлежащие имени хоста, из файла known_hosts. Эта опция полезна для удаления хэшированных хостов. Если ваше удаленное имя хоста - server.example.com, введите:

$ ssh-keygen -R {server.name.com}
$ ssh-keygen -R {ssh.server.ip.address}
$ ssh-keygen -R {ssh.server.ip.address} -f {/path/to/known_hosts}
$ ssh-keygen -R server.example.com

Теперь вы можете без проблем подключиться к хосту.

Решение # 2: Добавьте правильный ключ хоста в /home/user/.ssh/known_hosts

Нет необходимости удалять весь файл known_hosts, только строку с ошибкой в ​​этом файле. Например, если у вас есть 3 сервера следующим образом.

myserver1.com,64.2.5.111 ssh-rsa  
 AAAAB3NzaC1yc2EAAAABIwAAAIEA11FV0EnGahT2EK8qElocjuHTsu1jaCfxkyIgBTlxlrOIRchb2pw8IzJLOs2bcuYYfa8nSXGEcWyaFD1ifUjfHelj94AAAAB3NzaC1yc2EAAAABIwAAAIEA11FV0E
nGahT2EK8qElocjuHTsu1jaCfxkyIgBTlxlrOIRchb2pw8IzJLOs2bcuYYfa8nSXGEcWyaFD1ifUjfHelj94H+uv304/ZDz6xZb9ZWsdm+264qReImZzruAKxnwTo4dcHkgKXKHeefnBKyEvvp/2ExMV9WT5DVe1viVw
    k=
    myserver2.com,125.1.12.5 ssh-rsa
 AAAAB3NzaC1yc2EAAAABIwAAAQEAtDiERucsZzJGx/1kUNIOYhJbczbZHN2Z1gCnTjvO/0mO2R6KiQUP4hOdLppIUc9GNvlp1kGc3w7B9tREH6kghXFiBjrIn6VzUO4uwrnsMbnAnscD5EktgI7fG4ZcNUP 5+J7sa3o+rtmOuiFxCA690DXUJ8nX8yDHaJfzMUTKTGxQz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/IyI4NxHhhpltYZKW/Qz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/M7L0vKeTObue1SgAsXADtK3162a/Z6MGnAazIviHBldxtGrFwvEnk82+GznkO3IBZt5vOK2heBnqQBf
    w=
    myserver3.com,125.2.1.15 ssh-rsa 
 5+J7sa3o+rtmOuiFxCA690DXUJ8nX8yDHaJfzMUTKTGx0lVkphVsvYD5hJzm0eKHv+oUXRT9v+QMIL+um/IyI4NxHhhpltYZKW
 as3533dka//sd33433////44632Z6MGnAazIviHBldxtGrFwvEnk82/Qz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/M7L0vKeTObue1SgAsXADtK3162a/Z6MGnAazIviHBldxtGrFwvEnk82+GznkO3IBZt5vOK2heBnqQBfw==

Чтобы удалить второй сервер (myserver.com), откройте файл:

# vi +2 .ssh/known_hosts

и нажмите команду dd, чтобы удалить строку. Сохраните и закройте файл. Или используйте следующее

$ vi ~/.ssh/known_hosts

Теперь перейдите к строке # 2, введите следующую команду

:2

Теперь удалите строку с помощью dd и выйдите:

dd
:wq

Или Вы можете использовать команду sed следующим образом, чтобы удалить нарушающий ключ в строке # 44:

$ sed -i 44d ~/.ssh/known_hosts

Решение 3. Просто удалите файл known_hosts, если у вас только один ssh-сервер

$ cd
$ rm .ssh/known_hosts
$ ssh ras.mydomain.com

Попробуйте снова подключиться через ssh
Теперь вы сможете подключить свой сервер через ssh:

ssh username@server-ip-here
ssh nixcraft@server1.cyberciti.biz

Далее вы получите новое приглашение добавить ключ в ~/.ssh/known_hosts следующим образом:

The authenticity of host '10.86.115.66 ()' can't be established.
ECDSA key fingerprint is 4e:10:42:39:53:85:7f:89:89:dc:89:84:8d:79:e7:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.86.115.66' (ECDSA) to the list of known hosts.
0
ответ дан 14.11.2019, 11:57
  • 1
    Обратите внимание, что если вы НЕ меняли ключи хоста SSH вашего сервера, вы не должны заменять свою копию ключа хоста, поскольку это может быть признаком того, что кто-то пытается подорвать ваше общение, выполнив атака в середине. – Peter Cordes 14.11.2019, 11:57

Поскольку ваш сервер находится в локальной сети, вы можете быть совершенно уверены.

Если вы переустановили свою систему, это нормально, но вместо удаления файла known_hosts я бы рекомендовал сделать echo "" > ~/.ssh/known_hosts

0
ответ дан 14.11.2019, 11:57
  • 1
    Люди все еще могут подшучивать в локальной сети. В деловых или школьных сетях может быть достаточно места, чтобы не быть надежным. – Kiran Sarvaiya 14.11.2019, 11:58

Скопируйте эту строку, но введите имя пользователя и имя узла / IP для user и remote-server :

ssh-keygen -f "/home/user/.ssh/known_hosts" -R remote-server

Например: 117]

ssh-keygen -f "/home/dev1/.ssh/known_hosts" -R 192.168.199.108

И вставьте его на свой локальный терминал и запустите. Это сработало для меня.

0
ответ дан 14.11.2019, 11:58

ssh -q тоже делает это.

0
ответ дан 14.11.2019, 11:59

Если вы недавно переустановили сервер или иным образом изменили ключ хоста, возможно, безопасно удалить строку 8 из файла ~ / .ssh / known_hosts и повторно добавить сервер (с помощью ssh'ing к нему и ответ «да», когда он запрашивает проверку ключа)

0
ответ дан 14.11.2019, 11:59

Теги

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