Попытка SSH в сервер и получение key_load_public: нет такого файла или ошибки каталога

43

Я создал без пароля пароль SSH к моему удаленному серверу с моего Mac. Это сработало (!), А затем я закрыл свой терминал, снова открыл его, попробовал еще раз и получил следующее (имя пользователя, my_ip не являются реальными):

ssh -vvv username@my_ip
OpenSSH_7.2p2, LibreSSL 2.4.1
debug1: Reading configuration data /Users/Me/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: /etc/ssh/ssh_config line 53: Applying options for *
debug2: resolving "my_ip" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to my_ip [my_ip] port 22.
debug1: Connection established.
debug1: identity file /Users/Me/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Me/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Me/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Mes/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Me/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Me/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Me/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/Me/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2
ssh_exchange_identification: read: Connection reset by peer

Когда я проверил свою .sshпапку, id_rsaтам было, но никто из остальных не было. Из ошибки, похоже, мне нужно как-то создать эти файлы, но я не уверен, как это сделать.

Любая помощь будет оценена.

Эрик
источник
1
Есть ли актуальная проблема? Например, вы на самом деле не можете войти? Не могли бы вы отредактировать свой вопрос, включив в него полный отладочный вывод, а не только первую часть?
Кенстер
Да; мои извенения! Я не могу войти - и я остановил последнюю (и, возможно, самую важную?) Строку ранее.
Эрик

Ответы:

51
debug1: key_load_public: No such file or directory

Строка выше не ошибка, а просто журнал отладки, в котором говорится, что sshклиент не может найти отдельный открытый ключ (именованный ~/.ssh/id_rsa.pub). Этот файл не нужен для подключения к удаленному серверу, но может быть полезен.

Фактическая ошибка

ssh_exchange_identification: read: Connection reset by peer

указывает на ошибку в конфигурации сервера. Сервер работает, но не может принять соединение SSH. Проверьте журнал сервера для получения дополнительной информации. Похожие проблемы

Jakuje
источник
Эта ссылка была очень полезной. И, оказывается, я был в черном списке (я слишком много раз заходил на свой сервер, пока что-то тестировал.)
Eric
1
Моя проблема была в том, что хост Bastion изменил IP-адрес, и known_hostsна моем Mac был неправильный ... Он показывал @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @... Он показывает номер строки с помощью ~/.ssh/known_hosts:238. Итак, я удалил эту строку, в данном случае 238, из файла known_hosts на моем Mac и попытался снова успешно подключиться.
Марчелло де Сэйлс
3

Проблема: несоответствие IP-адреса хост-хоста ~/.ssh/known_hosts

У меня был known_hostsстарый файл, так как изменился IP-адрес бастиона ...

$ ssh 10.82.49.24
ssh_exchange_identification: Connection closed by remote host

Не дал мне никакой информации. Просмотр подробного вывода приводит к тому же:

$ ssh -v 10.82.49.24
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /Users/mdesales/.ssh/config
debug1: /Users/mdesales/.ssh/config line 1: Applying options for 10.82.*.*
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Executing proxy command: exec ssh -q -W 10.82.49.24:22 ec2-user@bastion-vpc-xxxxxx.config-yyyyyyy.com -i ~/.ssh/xxxconfig-xxxx.pem
debug1: key_load_public: No such file or directory
debug1: identity file ~/.ssh/xxxconfig-xxxx.pem
debug1: key_load_public: No such file or directory
debug1: identity file ~/.ssh/xxxconfig-xxxx.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: permanently_drop_suid: 1647059022
ssh_exchange_identification: Connection closed by remote host

На данный момент, поскольку он является прокси для другого хоста через бастион, я мог видеть, что бастион является проблемой:

$ ssh ec2-user@bastion-vpc-xxxxxx.config-yyyyyyy.com -i ~/.ssh/xxxconfig-xxxx.pem
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:Z8X1UlIgQ94BKJ7NA/oQi7v0NL4IlFeO7Ou4j76Zphk.
Please contact your system administrator.
Add correct host key in /Users/mdesales/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/mdesales/.ssh/known_hosts:238
ECDSA host key for ec2-user@bastion-vpc-xxxxxx.config-yyyyyyy.com has changed and you have requested strict checking.
Host key verification failed.

Решение

Удаление записи в строке 238 решило проблему ... Я мог ssh на бастион, и я мог ssh на хосты.

$ vim /Users/mdesales/.ssh/known_hosts

$ ssh ec2-user@bastion-vpc-xxxxxx.config-yyyyyyy.com -i ~/.ssh/xxxconfig-xxxx.pem
The authenticity of host 'ec2-user@bastion-vpc-xxxxxx.config-yyyyyyy.com (34.x.x.y)' can't be established.
ECDSA key fingerprint is SHA256:Z8X1UlIgQ94BKJ7NA/oQi7v0NL4IlFeO7Ou4j76Zphk.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-user@bastion-vpc-xxxxxx.config-yyyyyyy.com -i ~/.ssh/xxxconfig-xxxx.pem,34.213.y.x' (ECDSA) to the list of known hosts.
********************************************************************************
This is a private computer system containing information that is proprietary
and confidential to the owner of the system.  Only individuals or entities
authorized by the owner of the system are allowed to access or use the system.
Any unauthorized access or use of the system or information is strictly
prohibited.

All violators will be prosecuted to the fullest extent permitted by law.
********************************************************************************
Last login: Wed Aug  2 20:35:55 2017 from 10.81.31.115
[ec2-user@ip-10-82-50-142 ~]$ 
Марчелло де Сэйлс
источник
1

Случилось со мной сегодня.

Исправлено путем отключения моего WLAN и повторного подключения. Да, это звучит глупо и глупо, но, по крайней мере, на одном WLAN это произошло без веской причины.

Stargazers
источник
0

Та же проблема, просто опубликуйте решение здесь

Удалить ваш IP из /etc/hosts.denyиспользования:

nano /etc/hosts.deny
Цинь Ван
источник