Я могу подключиться к другому компьютеру с Ubuntu в моей локальной сети через SSH. На обоих компьютерах я установил openssh-сервер, но с другого компьютера с Ubuntu я не могу подключиться к своему ПК через SSH, и я получил эту ошибку:
Ошибка проверки ключа хоста ...
ssh
из командной строки.Ответы:
«Host ключ не удалось выполнить проверку» означает , что хост - ключ удаленного хоста был изменен.
SSH хранит ключи хостов удаленных хостов в
~/.ssh/known_hosts
. Вы можете либо отредактировать этот текстовый файл вручную и удалить старый ключ (номер строки можно увидеть в сообщении об ошибке), либо использоватьС man-страницы :
(что я узнал из ответа на вопрос: можно ли удалить определенный ключ хоста из файла знакомых SSH SSH? ).
источник
rm ~/.ssh/*
, тоssh -o BatchMode=yes root@somewhere
, если ничего другого не так, я получуHost key verification failed.
Не важно, если вы всегда интерактивны, но релевантны для сценариев, сталкивающихся с одной и той же ошибкой.ssh-keygen -R example.net:7999
урожайностьHost example.net:7999 not found in known_hosts
.known_hosts
файл и SSH снова. Это сработало.~/.ssh/known_hosts
не читаетсяЕсли вы работаете в определенных ситуациях удаленного доступа / создания сценариев, когда вам не хватает интерактивного доступа к ключу приглашения к добавлению хоста, обойдите его следующим образом:
Предупреждение: навсегда добавлен файл «thing.example.com, 10.11.12.13 »(RSA) в список известных хостов.
источник
sh """ssh -o StrictHostKeyChecking=No ec2-user@someIpAddress-e2e sudo service tomcat restart"""
Также иногда возникает ситуация, когда вы работаете с последовательной консолью, тогда проверка приведенной выше команды в подробном режиме
-v
покажет, что вы/dev/tty
не существуете, а она есть.В приведенном выше случае просто удалите
/dev/tty
и создайте символическую ссылку/dev/ttyS0
на/dev/tty
.В качестве альтернативы добавьте
id_rsa.pub
удаленное местоположение, чтобы пароль не запрашивался, и вы получаете доступ для входа в систему.источник
В моем случае это было вызвано проблемой udev - не было
/dev/tty
узла устройства. Решение для меня было просто:источник
На терминале:
Появится следующее сообщение или подобное:
Затем подключитесь к EC2 как обычно:
источник
command-line line 0: Bad yes/no/ask argument.
потому что вы неправильно используете «Нет» вместо «нет» в качестве аргументаStrictHostKeyChecking
Ну, это просто потому, что вторая Ubuntu требует подключения по ключу, а не по паролю.
Я предлагаю вам использовать
sudo dpkg-reconfigure openssh-server
на вашем компьютере, и тогда он должен работать правильно. Это сбросит конфигурацию для openssh и должно вернуться к аутентификации пароля по умолчанию.Вторая возможность состоит в том, что на вашем ПК уже есть ключ для вашего другого Ubuntu, и что он изменился, и больше не распознается. В этом случае вам придется отредактировать файл,
.ssh/authorized_keys
чтобы удалить проблемную строку, идентифицирующую вашу Ubuntu.источник
Это старая ветка, и я только что наткнулся на этот ответ, я просто добавлю, что я сделал, чтобы решить эту проблему.
Я просто посмотрел на сообщение об ошибке, которое он мне выдал, и сказал, что нужно выполнить эту команду, чтобы удалить ее из списка хостов. После этого я сделал следующее:
Затем я следовал указаниям оттуда, пока не смог войти в ssh на сервер.
источник
Это означает, что ваш ключ удаленного хоста был изменен (может быть смена пароля хоста),
Ваш терминал предложил выполнить эту команду от имени пользователя root
Вы должны удалить это имя хоста из списка хостов на вашем ПК / сервере. Скопируйте предложенную команду и выполните от имени пользователя root.
Надеюсь, это работает.
источник
Вы должны изменить свой ключ следующим образом: из заданной ошибки найдите, например, ключ хоста, который был изменен: Обижающий ключ ECDSA в /Users/user-name/.ssh/known_hosts:5 сказал, что 5-й ключ изменен, поэтому сделайте так:
Обратите внимание: вы должны быть пользователем root или иметь права на sudo.
источник
Вы должны поместить ключ rsa целевого хоста в исходный хост
/home/user/.ssh/known_hosts
, запустив его на целевойисточник
Может быть, вам просто нужно ввести «да», когда SSH подтвердите, что вы хотите продолжить подключение.
Как и ниже.
Затем введите свой пароль.
Пожалуйста, обратите внимание на «Вы уверены, что хотите продолжить подключение (да / нет)? Да ». Вы должны ввести да, а не войти.
источник
Помимо строгого отключения проверки ключа хоста, вы также можете подключиться, набрав:
источник
pico ~/.ssh/known_hosts
и удалите все строки после повторного подключения, и вы получите новый ключ.источник
ssh-keygen -R hostname
лучше.Мое решение взято из этого сообщения в блоге: согласование алгоритма не удалось для SSH Secure Shell Client
Вам нужно изменить файл следующим образом:
А затем добавьте следующее:
В основном вы пробовали разные решения, пока не нашли решение, которое может решить вашу проблему. Если вышеуказанные решения не работают, попробуйте это. Если этот не работает, пожалуйста, попробуйте другие.
источник
Просто выполните команду "sudo vi /var/root/.ssh/known_hosts" и удалите строку, содержащую ключ для хоста, к которому вы пытаетесь подключиться, и снова подключитесь.
Я не знаю о вашей конкретной ситуации, но, скорее всего, эта ошибка пришла вместе с сообщением вроде этого:
Если вы прочитаете журнал более внимательно, то увидите, что ключ, полученный от хоста, конфликтует с ключом, который у вас уже есть - в этом случае он находится в строке 74 файла known_hosts (Официрующий ключ ECDSA в / var / корень / .ssh / known_hosts: 74). Удалите строку из known_hosts, сохраните изменения и переподключите.
источник
это еще одно решение tty - иногда этот файл устройства имеет неправильные разрешения.
источник