Проблема соединения SSH с “Проверкой ключа хоста привела … к сбою” ошибка

Я могу соединиться с другой машиной Ubuntu в своей LAN через SSH. На обоих из затем ПК я установил openssh-сервер, но от другого компьютера Ubuntu я не могу соединиться со своим ПК через SSH, и я получил эту ошибку:

Проверка ключа хоста перестала работать...

181
задан 13 March 2016 в 09:11

17 ответов

"Проверка ключа хоста, неудавшаяся", означает, что ключ хоста удаленного хоста был изменен.

SSH хранит ключи хоста удаленных хостов в ~/.ssh/known_hosts. Можно или отредактировать тот текстовый файл вручную и удалить старый ключ (Вы видите номер строки в сообщении об ошибке), или использовать

ssh-keygen -R hostname

Из страницы справочника:

- R имя хоста
Удаляет все ключи, принадлежащие имени хоста из known_hosts файла. Эта опция полезна для удаления хешированных хостов.

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

218
ответ дан 22 November 2019 в 22:46

Ну, это просто, потому что вторая человечность требует соединения ключом и не паролем.

Я предлагаю, чтобы Вы использовали sudo dpkg-reconfigure openssh-server на Вашем ПК, и затем это должно работать правильно. Это сбросит конфигурацию для openssh и должно возвратиться к аутентификации по паролю по умолчанию.

Вторая возможность состоит в том, что уже существует ключ для Вашей другой человечности в Вас ПК, и что это больше изменяло таким образом быть не распознанным. В этом случае необходимо будет отредактировать файл .ssh/authorized_keys удалить проблематичную строку, определяющую Вашу человечность.

3
ответ дан 22 November 2019 в 22:46

В моем случае это было вызвано udev проблемой - было нет /dev/tty узел устройства. Решение для меня было справедливо:

sudo mknod -m 666 /dev/tty c 5 0
8
ответ дан 22 November 2019 в 22:46

pico ~/.ssh/known_hosts и удалите все строки, после того, как просто снова соединятся, и Вы получите новый ключ.

0
ответ дан 22 November 2019 в 22:46

Также иногда существует ситуация, когда Вы работаете над последовательной консолью, затем проверяя выше команды в подробный режим -v покажет Вам /dev/tty не существует, в то время как это делает.

ssh -v user@hostname

В вышеупомянутом случае просто удаляют /dev/tty и создайте символьную ссылку /dev/ttyS0 кому: /dev/tty.

rm /dev/tty
ln -s /dev/ttyS0 /dev/tty

Как альтернатива, добавить id_rsa.pub к удаленному местоположению, таким образом, пароль не запрашивается и Вы получаете доступ входа в систему.

10
ответ дан 22 November 2019 в 22:46

Если Вы работаете в определенных удаленных ситуациях / ситуациях со сценариями, где Вы испытываете недостаток в интерактивном доступе к prompt-to-add-hostkey, работе вокруг этого как это:

$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime

Предупреждение: Постоянно добавленный 'something.example.com, 10.11.12.13' (RSA) к списку известных хостов.

129
ответ дан 22 November 2019 в 22:46

Это - старый поток, и я просто натыкался на этот ответ, я просто добавлю, что я сделал для решения этого.

ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME

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

ssh-copy-id HOSTNAME

Чем я следовал за подсказками оттуда, пока я не смог к ssh в сервер.

3
ответ дан 22 November 2019 в 22:46

Необходимо изменить ключ таким образом: От Вашей данной ошибки находят который ключ хоста измененный, например: Оскорбление ключ ECDSA/Users/user-name/.ssh/known_hosts:5 сказал, что 5-й измененный ключ, сделайте это:

sed -i '5d' ~/.ssh/known_hosts

Уведомление: необходимо быть корнем или иметь полномочие для sudo.

1
ответ дан 22 November 2019 в 22:46

Мое решение прибывает из этого сообщения в блоге: Согласование алгоритма привело к сбою для SSH Безопасный Клиент Shell

Необходимо изменить файл следующим образом:

sudo nano /etc/ssh/sshd_config

И затем добавьте следующее:

# Ciphers
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,arcfour
KexAlgorithms diffie-hellman-group1-sha1

В основном Вы попробовали различные решения, пока Вы не находите тот, который может решить Вашу проблему. Если вышеупомянутые решения не работают, попробуйте этого. Если этот не работает также, судите других.

0
ответ дан 22 November 2019 в 22:46

необходимо поместить rsa ключ целевого узла в исходный хост /home/user/.ssh/known_hosts путем выполнения этого на цели

ssh-keyscan -t rsa @targethost
1
ответ дан 22 November 2019 в 22:46

На терминале:

ssh -o StrictHostKeyChecking=no -i YourPublicKey.pem user@example.com uptime

Следующее сообщение, или подобный, появится:

Warning: Permanently added 'example.com, XX.XXX.XXX.XX' (ECDSA) to the list of known hosts.
 00:47:37 up 3 min,  0 users,  load average: 0.00, 0.00, 0.00

Затем подключение к Вашему EC2 как нормальный:

ssh -i YourPublickey.pem user@example.com
6
ответ дан 22 November 2019 в 22:46

Его средства Ваш удаленный ключ хоста был изменен (Может быть изменение пароля хоста),

Ваш терминал предложил выполнить эту команду как пользователя root

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231

Необходимо удалить то имя хоста из списка хостов на ПК/сервере. Копия, которая предложила команду и выполняется как пользователь root.

$ sudo su                                                            // Login as a root user

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231   // Terminal suggested command execute here
Host [www.website.net]:4231 found: line 16 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

$ exit                                                               // Exist from root user

$ sudo ssh root@www.website.net -p 4231                              // Try again

Надеюсь, что это работает.

2
ответ дан 22 November 2019 в 22:46

Можете быть Вы, просто должен ввести "да", когда ssh подтверждают, что Вы хотите продолжить соединяться.

Как рев.

The authenticity of host 'xxx' can't be established.
ECDSA key fingerprint is yyy.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx' (ECDSA) to the list of known hosts.
Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

Затем введите свой пароль.

Обратите внимание на "Действительно ли Вас, уверены, что Вы хотите продолжить соединяться (да/нет)? да". Необходимо войти да, не входят.

1
ответ дан 22 November 2019 в 22:46

Кроме строго отключают проверку ключа хоста, можно также соединиться путем ввода:

ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no <username@target_machine_ip_or_domain_name>
1
ответ дан 22 November 2019 в 22:46
chmod 666 /dev/tty 

еще одно tty решение - иногда, этот файл устройств имеет неправильные полномочия.

-1
ответ дан 22 November 2019 в 22:46

Просто сделайте "sudo vi/var/root/.ssh/known_hosts" и удалите строку, которая удерживает клавишу для хоста, с которым Вы пытаетесь соединиться и повторно подключить снова.

Я не знаю о Вашей конкретной ситуации, но по всей вероятности эта ошибка пришла с сообщением как это:

my_mac:~ oivanche$ sudo ssh pi@192.168.0.45
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 ECDSA key sent by the remote host is
SHA256:sx1Z4xyGY9venBP6dIHAoBj0VhDOo7TUVCE2xWXpzQk.
Please contact your system administrator.
Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /var/root/.ssh/known_hosts:74
ECDSA host key for 192.168.0.45 has changed and you have requested strict checking.
Host key verification failed.

При чтении журнала более тщательно, Вы будете видеть, что ключ, который Вы имеете от хоста, конфликтует с ключом, который Вы уже имеете - в этом случае это находятся на строке 74 из known_hosts файла (Нарушающий ключ ECDSA/var/root/.ssh/known_hosts:74). Удалите строку из known_hosts, сохраните изменения и снова соединитесь.

0
ответ дан 22 November 2019 в 22:46

Если вы добавите параметр -v в ssh (возможно, более одного раза), он распечатает всевозможную информацию, которая может помочь в выявлении проблемы. В моем случае он жаловался на разрешения / dev / tty , а chmod 666 / dev / tty устранил проблему.

0
ответ дан 15 February 2020 в 14:47

Другие вопросы по тегам:

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