Buscar..


No se acepta la clave privada (depuración de clientes OpenSSH)

Por defecto, la mayor parte de la información está oculta para el usuario. Puede usar los modificadores -v para obtener un registro detallado del intento de conexión, que generalmente identificará el problema al mostrar por qué el comportamiento es diferente de lo que espera.

Supongamos que se está conectando al servidor example.com utilizando ssh (u otro cliente OpenSSH como sftp o scp ) y el servidor no acepta su clave privada y el servidor solicita la contraseña (o rechaza la conexión):

$ ssh example.com
[email protected]'s password: 

Intente ejecutar ssh con los modificadores -vvv , que escribirán todos los mensajes de depuración. Será mucha información, pero después de un tiempo, es bastante fácil de entender que:

$ ssh -vvv example.com

El problema más común es que la clave no está en la ubicación esperada. Puede esperar que aparezcan líneas similares, quejándose de archivos perdidos. Comprobar que su archivo fue realmente leído es un buen comienzo:

debug1: identity file /home/username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/username/.ssh/id_dsa-cert type -1

Podemos continuar con la parte de autenticación. La clave puede ofrecerse, pero el servidor la puede rechazar, debido a un problema con la configuración del servidor. El registro podría verse de alguna manera como esto:

debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: username@localhost
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password

¡LA IDENTIFICACIÓN DEL HOST REMOTO HA CAMBIADO!

El error común al usar ssh es ver el error como

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 RSA key sent by the remote host is
SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Please contact your system administrator.
Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/username/.ssh/known_hosts:12
RSA host key for *IP address* has changed and you have requested strict checking.
Host key verification failed.

Esto significa que se conectó al mismo servidor antes y se identificó con diferentes claves de host. Si sabe que cambió las claves del servidor, reinstaló el servidor o el administrador del servidor anunció algunos cambios, generalmente está bien eliminar la clave antigua y dejar que la ssh guarde su nueva.

La clave antigua se puede eliminar de forma transparente con ssh-keygen :

ssh-keygen -R *IP address*

Y la siguiente conexión debe pedirle que verifique la nueva huella digital:

ssh192.168.0.128
The authenticity of host '192.168.0.128 (192.168.0.128)' can't be established.
ECDSA key fingerprint is SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Are you sure you want to continue connecting (yes/no)? 

Si no está al tanto de lo anterior, lo mejor es ponerse en contacto con el administrador del servidor para asegurarse de que todo está bien. De lo contrario, ¡el atacante potencial podría obtener tanto su información de autenticación como todos los datos transferidos!

Conexión denegada

Se producirá un error de "Conexión rechazada" si su cliente envía una solicitud de conexión a un host de servidor remoto, y el host remoto responde diciendo que se niega a aceptar la solicitud. El error de "Conexión rechazada" significa esencialmente que la computadora no está aceptando conexiones a la dirección IP y al puerto solicitados.

La "conexión rechazada" puede ser causada por un firewall que bloquea las solicitudes de conexión. Un firewall que está configurado para bloquear las conexiones a un punto final en particular puede configurarse para eliminar las solicitudes de conexión, en cuyo caso el cliente nunca recibirá una respuesta y finalmente se agotará el tiempo de espera. O el firewall puede responder a las solicitudes de conexión de conexión con una respuesta de rechazo.

Aparte de los firewalls, en el caso de SSH, la "conexión rechazada" tiene algunas causas posibles:

  • Podría estar usando el número de puerto incorrecto para conectarse. El número de puerto estándar para SSH es 22, pero algunas personas ejecutan el servicio ssh en un puerto diferente para impedir los intentos de acceso no autorizados.

  • Podría estar intentando conectarse a la computadora incorrecta. Es posible que haya escrito mal el nombre de host o la dirección IP. O la computadora puede estar usando una dirección asignada dinámicamente que ha cambiado.

  • El proceso del servidor ssh puede no estar ejecutándose:

    • Es posible que aún no se haya iniciado si el sistema se está iniciando.
    • Puede haber sido deshabilitado; por ejemplo, cuando el sistema está en modo de usuario único.
    • Puede haber estado mal configurado, por lo que no se pudo iniciar.
    • Es posible que la computadora no tenga configurado un servidor SSH. Los sistemas MS Windows normalmente no incluyen un servidor SSH. En algunos sistemas Linux, el servidor SSH puede ser un componente opcional. OS X incluye un servidor SSH, pero está deshabilitado de forma predeterminada.
  • Es posible que el proceso del servidor SSH no esté escuchando las conexiones en la interfaz IP específica a la que está intentando conectarse. La mayoría de las computadoras tienen al menos dos interfaces IP, una interfaz "localhost" y una o más interfaces de red. Cada interfaz activa tendrá una dirección IP asociada. Normalmente, un servidor SSH está configurado para aceptar conexiones en cualquier interfaz IP. Pero se puede configurar para aceptar conexiones solo en interfaces particulares. En ese caso, la computadora rechazará las conexiones a una dirección IP que el servidor SSH no está escuchando, incluso si la solicitud de conexión tiene el puerto correcto.

  • El servidor puede tener una acumulación de solicitudes de conexión al mismo puerto. Esto es raro e inusual, pero si el host recibe solicitudes de conexión más rápido de lo que pueden ser manejadas, el host eventualmente comenzará a rechazar nuevas solicitudes de conexión.

Tenga en cuenta que, aparte de los firewalls, "conexión rechazada" significa que se está comunicando con la computadora remota, simplemente no está aceptando su solicitud de conexión.

Tiempo de conexión agotado

Se produce un error de "Tiempo de conexión agotado" cuando el sistema remoto no responde al intento del cliente de abrir una conexión TCP / IP. Las causas más comunes incluyen:

  • Un servidor de seguridad está bloqueando el intento de conexión en el puerto que está utilizando:
    • El firewall podría estar en el lado del cliente, bloqueando las conexiones salientes, en el lado del servidor, bloqueando las conexiones entrantes, o en otro lugar en la ruta.
    • El problema raíz podría ser que esté utilizando el número de puerto incorrecto.
  • El host al que intenta conectarse podría estar desconectado.
  • Alguna parte de la red entre el cliente y el servidor podría estar dañada o interrumpida.
  • Podría haber un problema de enrutamiento de la red.

Diagnosticar la causa raíz de los tiempos de espera de conexión es difícil.

ssh_exchange_identification: leer: restablecimiento de la conexión por par

Este mensaje de error puede ser producido por el cliente OpenSSH ssh . Esto significa que la conexión TCP entre el cliente y el servidor se cerró anormalmente por el servidor inmediatamente después de ser aceptada. Las razones comunes de este mensaje incluyen:

  • El proceso del servidor SSH no funciona correctamente, por ejemplo, se bloqueó.
  • Un servidor de seguridad, enrutador u otro dispositivo de red entre el cliente y el servidor está interfiriendo con la conexión SSH.

Las frases en el mensaje de error indican específicamente lo que ha sucedido:

ssh_exchange_identification: 1. Después de que un cliente SSH establece una conexión con un servidor SSH, el primer paso para iniciar el protocolo SSH es que el servidor envíe su versión de software al cliente. Un error que contiene "ssh_exchange_identification" indica que el error ocurrió inmediatamente después de establecer la conexión TCP, mientras el cliente estaba esperando la versión del software del servidor.

Restablecimiento de la conexión: un restablecimiento de la conexión significa que la conexión TCP fue "anormalmente cerrada". Puede obtener esto si el proceso de software que contiene una de las conexiones TCP se bloquea. Los firewalls de red pueden configurarse para usar restablecimientos de conexión como un medio para bloquear conexiones TCP.

peer significa que la conexión TCP se cerró desde el "otro extremo" de la conexión. En este caso, el "otro extremo" es el servidor SSH remoto.

Tenga en cuenta que este error no indica ningún tipo de error de autenticación. El servidor cerró la conexión TCP inmediatamente después de aceptarla. El cliente y el servidor aún no han intercambiado ningún dato. El servidor aún no ha enviado una clave de host al cliente, y el cliente aún no ha intentado autenticarse con el servidor.

ssh_exchange_identification: conexión cerrada por el host remoto

Este mensaje de error puede ser producido por el cliente OpenSSH ssh. Significa que la conexión TCP entre el cliente y el servidor fue cerrada por el servidor inmediatamente después de ser aceptada. Este mensaje generalmente indica que el servidor SSH ha sido configurado para no aceptar conexiones del cliente por alguna razón:

  • El servidor puede configurarse para rechazar las conexiones de la dirección IP del cliente.
  • El servidor puede configurarse con un límite en el número de conexiones SSH activas.
  • El cliente puede haberse conectado a algo que no es un servidor SSH.

Las frases en el mensaje de error indican específicamente lo que ha sucedido:

ssh_exchange_identification: 1. Después de que un cliente SSH establece una conexión con un servidor SSH, el primer paso para iniciar el protocolo SSH es que el servidor envíe su versión de software al cliente. Un error que contiene "ssh_exchange_identification" indica que el error ocurrió inmediatamente después de establecer la conexión TCP, mientras el cliente esperaba la versión de software del servidor.

Conexión cerrada: Esto significa que la conexión TCP se cerró de manera normal. Indica que el servidor SSH cerró deliberadamente la conexión. Esto contrasta con el "Reinicio de la conexión", que podría indicar que el servidor SSH se bloqueó o no funcionó correctamente.

por host remoto significa que la conexión TCP se cerró desde el "otro extremo" de la conexión. En este caso, el "otro extremo" es el servidor SSH remoto.

Tenga en cuenta que este error no indica ningún tipo de error de autenticación. El servidor cerró la conexión TCP inmediatamente después de aceptarla. El cliente y el servidor aún no han intercambiado ningún dato. El servidor aún no ha enviado una clave de host al cliente, y el cliente aún no ha intentado autenticarse con el servidor.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow