Проблема с подключением по SSH с ошибкой "Ошибка проверки ключа хоста..."

Я могу подключиться к другой машине Ubuntu в моей локальной сети через SSH. На обоих тогдашних КОМПЬЮТЕРАХ я установил openssh-сервер но с другого компьютера Ubuntu я не могу подключиться к своему компьютеру через SSH, и я получил эту ошибку:

Ошибка проверки ключа хоста...

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

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

ssh-keygen -R hostname

От справочная страница:

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

(что я узнал из ответа наМожно ли удалить определенный ключ хоста из файла known_hosts SSH's?).

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

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

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

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

ssh -v user@hostname

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

rm /dev/ttyln -s /dev/ttyS0 /dev/tty

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

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

sudo mknod -m 666 /dev/tty c 5 0

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

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

Возможно, вам просто нужно ввести "да", когда 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)? yesWarning: Permanently added 'xxx' (ECDSA) to the list of known hosts.Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

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

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

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

ssh-keyscan -t rsa @targethost

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

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

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

ssh-copy-id HOSTNAME

Затем я следовал инструкциям оттуда, пока не смог подключиться к серверу по ssh.

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

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

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

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

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

Обратите внимание: вы должны быть root или иметь привилегии для sudo.

Используете ли вы имена хостов или IP-адреса?

Это не специфичная для Ubuntu проблема. Может произойти с любым “ssh” из командной строки.

Не похоже, но я получил ту же ошибку, но из-за другой проблемы: ubuntu - Managing multiple servers behind a firewall with SSH reverse tunnel - Server Fault