Intentando SSH en el servidor y obteniendo key_load_public: No existe tal error de archivo o directorio

43

Creé una conexión ssh sin contraseña a mi servidor remoto desde mi mac. Funcionó (!) Y luego cerré mi terminal, lo volví a abrir, lo intenté nuevamente y obtuve lo siguiente (nombre de usuario, my_ip no son reales):

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

Cuando revisé mi .sshcarpeta, id_rsaestaba allí pero ninguno de los otros estaba. Por el error, parece que necesito crear de alguna manera estos archivos, pero no estoy seguro de cómo hacerlo.

Cualquier ayuda sería apreciada.

Eric
fuente
1
¿Hay algún problema real? Por ejemplo, ¿realmente no puedes iniciar sesión? ¿Podría editar su pregunta para incluir la salida de depuración completa, en lugar de solo la primera parte?
Kenster
Sí; ¡mis disculpas! No puedo iniciar sesión, y había dejado la última línea (¿y quizás la más importante?) Anteriormente.
Eric

Respuestas:

51
debug1: key_load_public: No such file or directory

La línea anterior no es un error, sino un simple registro de depuración que dice que el sshcliente no puede encontrar una clave pública separada (nombrada ~/.ssh/id_rsa.pub). Este archivo no es necesario para conectarse al servidor remoto, pero puede ser útil.

El error real

ssh_exchange_identification: read: Connection reset by peer

apunta a un error en la configuración del servidor. El servidor se está ejecutando, pero no acepta la conexión SSH. Consulte el registro del servidor para obtener más información. Problemas similares

Jakuje
fuente
Ese enlace fue muy útil. Y resulta que, de hecho, estaba en la lista negra (había ingresado en mi servidor demasiadas veces mientras estaba probando algo)
Eric
1
Mi problema era que un host Bastion había cambiado la dirección IP y known_hostsera incorrecta en mi Mac ... Se mostró @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @... Muestra el número de línea por ~/.ssh/known_hosts:238. Entonces, eliminé esa línea, 238 en este caso, del archivo known_hosts en mi Mac e intenté conectarme nuevamente con éxito.
Marcello de Sales
3

Problema: no coinciden las direcciones IP del host del bastión en ~/.ssh/known_hosts

Tenía el known_hostsarchivo antiguo ya que la dirección IP del bastión cambió ...

$ ssh 10.82.49.24
ssh_exchange_identification: Connection closed by remote host

No me dio ninguna información. Mirar la salida detallada conduce a lo mismo:

$ 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 [email protected] -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

En este punto, dado que es un proxy para otro host a través del bastión, podría ver que el bastión es un problema:

$ ssh [email protected] -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 [email protected] has changed and you have requested strict checking.
Host key verification failed.

Solución

La eliminación de la entrada en la línea 238 solucionó el problema ... pude ir al bastión y a los hosts.

$ vim /Users/mdesales/.ssh/known_hosts

$ ssh [email protected] -i ~/.ssh/xxxconfig-xxxx.pem
The authenticity of host '[email protected] (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 '[email protected] -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 ~]$ 
Marcello de Sales
fuente
1

Me pasó hoy.

Solucionado desconectando mi WLAN y volviendo a conectar. Sí, suena estúpido y es estúpido, pero al menos en una WLAN esto ha sucedido sin ninguna buena razón.

Observadores de estrellas
fuente
0

Mismo problema, solo publique la solución aquí

Elimine su IP del /etc/hosts.denyuso:

nano /etc/hosts.deny
Qin Wang
fuente