Lidiar con los errores de SSH puede resultar frustrante, ya que le impiden acceder a sus servidores. SSH (Secure Shell) es una herramienta indispensable para la administración y mantenimiento de servidores. La mayoría de las páginas de los sitios web requerirán que el usuario use SSH en algún momento para acceder al servidor.

Si tiene problemas de SSH, esta guía lo ayudará a solucionar esos problemas. En este caso estamos trabajando con un servidor virtual.

Solucionar problemas de SSH

Para solucionar problemas de conexión SSH, debe asegurarse de que su servidor privado virtual esté funcionando correctamente a través de la consola web. Además, consulte el panel de la nube para ver si hay algún problema cerca de usted que pueda afectar su VPS.

Cómo detectar problemas de SSH

Si tiene problemas con SSH, será difícil acceder a su servidor y verá los siguientes mensajes de error:

Permission denied (publickey)

O

ssh: connect to host [...] port 22: connection refused

O

ssh: connect to host [...] port 22: operation timed out

O

ssh_exchange_identification: read: Connection reset by peer

O

REMOTE HOST IDENTIFICATION HAS CHANGED

O

WARNING: UNPROTECTED PRIVATE KEY FILE!

También puede encontrar los siguientes errores:

bind: Address already in use

Lista de comprobación de errores

La siguiente lista de verificación cubre los errores SSH más comunes.

Error al identificar el nombre de host remoto

Puede recibir este mensaje de error al intentar acceder a través de SSH:

REMOTE HOST IDENTIFICATION HAS CHANGED

Puede ocurrir un error de nombre de host cuando un host SSH no puede conectarse a una dirección de red en particular.

En SSH cuando ejecuta un comando como ssh user@example.com Puede ver el error a continuación:

error output
ssh: Could not resolve hostname example.co: Name or service not known

En PuTTY puede encontrar un error como este:

PuTTY error output
Unable to open connection to example.com Host does not exist

Siga los pasos a continuación para resolver este error;

  • Asegúrese de que el nombre de host esté escrito correctamente.
  • Confirme que el error de nombre de host se puede corregir usando el comando ping en su sistema.

Si aún tiene problemas de DNS, puede usar la dirección IP en su servidor virtual como una solución confiable con ssh user@111.111.111.111 en lugar del normal ssh user@example.com

Tiempo de conexión agotado

Este error indica que el usuario intentó conectarse al servidor, pero el servidor se negó a cargar los resultados dentro del límite de tiempo especificado.

Ejecutar el siguiente comando ssh user@111.111.111.111 en un OpenSSH da como resultado el siguiente error:

Error output
ssh: connect to host 111.111.111.111 port 22: connection timed out

Este error se muestra para PuTTY:

PuTTY error output
Network error: Connection time out

Siga los pasos a continuación para resolver este error.

  • Asegúrese de que la dirección IP del host esté escrita correctamente.
  • Confirme que la red que está utilizando permite la conectividad del puerto SSH.
  • Asegúrese de que las reglas del firewall no estén predeterminadas en su VPS.

Fallo de conexión

Un error de conexión es diferente a un tiempo de espera. Esto significa que su solicitud llegará al puerto SSH, pero el host rechazará la solicitud.

En este caso, es posible que vea el siguiente error:

Error output
ssh: connect to host 111.111.111.111 port 22: connection refused

En PuTTY, es posible que vea algo como esto:

PuTTY error output
Network error: Connection refused

En este punto, pueden producirse errores similares al tiempo de espera de la conexión. Para que pueda resolverlos siguiendo los mismos pasos descritos anteriormente:

Siga los pasos a continuación para resolver este error.

  • Asegúrese de que la dirección IP del host esté escrita correctamente.
  • Confirme que la red que está utilizando permite la conectividad del puerto SSH.
  • Asegúrese de que las reglas del firewall en su servidor virtual no estén configuradas por defecto.

Soluciones a problemas comunes de conectividad SSH

Aquí discutimos las técnicas más comunes para solucionar errores de SSH.

Configuraciones de cortafuegos

Pueden surgir algunos problemas de conectividad SSH cuando las configuraciones del firewall bloquean ciertos puertos y servicios.

Para corregir esto, debe aprender a ajustar las reglas del firewall. Por ejemplo, los servidores de Ubuntu se ejecutan en UFW mientras que CentOS usa FirewallD.

Si está usando FirewallD, use el siguiente comando:

# firewall-cmd --list -services

Esto debería hacer una lista de todos los servicios que necesitará, incluido SSH que se ejecuta en el puerto estándar 22 para mostrar que el firewall está funcionando correctamente:

producción

dhcpv6-client http ssh

Para los usuarios de UFW, use el estado de ufw para verificar el estado del firewall:

# ufw status

La salida debería verse así:

Status: active

To                         Action      From
--                         ------      ----
22                         LIMIT       Anywhere                  
443                        ALLOW       Anywhere                  
80                         ALLOW       Anywhere                  
Anywhere                   ALLOW       192.168.0.0               
22 (v6)                    LIMIT       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)

Asegúrese de que el puerto SSH que está utilizando esté en la lista.

Verifique el estado de su SSH

Si encuentra un error al usar SSH en VPS, verifique que SSH esté funcionando correctamente. Esto depende del sistema operativo utilizado. Para sistemas operativos más antiguos como Ubuntu 14.04, Debian 8 o CentOS6, use el Servicio Mando. Para versiones más recientes, ejecute el systemct1 Mando.

Para Ubuntu 14.04, ejecute el Servicio Comando verifica el estado de SSH con el siguiente comando:

# service ssh status

Si el estado es correcto, debería ver algo como esto:

output (running)
ssh start/running, process 1262

De lo contrario, verá el siguiente mensaje:

output (running)
ssh start/waiting

En un sistema que admita systemct1 Comando, verifique el estado con el siguiente comando:

# systemct1 status sshd

Debería tener el siguiente resultado. Tenga en cuenta la línea Activo.

sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since Mon 2017-03-20 11:00:22 EDT; 1 months 1 days ago
  Process: 899 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
 Main PID: 906 (sshd)
   CGroup: /system.slice/sshd.service
           ├─  906 /usr/sbin/sshd -D
           ├─26941 sshd: [accepted]
           └─26942 sshd: [net]

Si el servicio no se está ejecutando correctamente, verá la línea Inactivo con el siguiente resultado:

sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: inactive (dead) since Fri 2017-04-21 08:36:13 EDT; 2s ago
  Process: 906 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 899 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
 Main PID: 906 (code=exited, status=0/SUCCESS)

Si el servicio no se está ejecutando, comience de nuevo con systemct1 iniciar sshd o Inicie el servicio ssh dependiendo del sistema operativo.

Verifique el puerto SSH

El puerto de servicio SSH se puede comprobar mediante dos métodos. Primero, verifique la carpeta de configuración SSH y, segundo, verifique cómo está funcionando el sistema.

El archivo SSH en la mayoría de los sistemas es / etc / ssh / sshd_config. Utilice el puerto 22 predeterminado, aunque puede utilizar una línea de configuración diferente especificando un puerto con un número específico.

Utilice el siguiente comando:

$ gre port /etc/ssh/sshd_config

Debería ver el siguiente resultado para mostrar el número de puerto:

output
port 22

Usar ss para confirmar que su puerto está funcionando correctamente. Usar sudo correr ss o usa el usuario root.

Deberías tener algo como esto:

# ss -p1nt

El resultado debe mostrar el nombre del programa con un puerto configurado específico. Un ejemplo debería verse así:

output
state           recv-Q   send-Q
LISTEN            0         128
LISTEN            0         128

A estas alturas, debería poder solucionar la mayoría de los problemas de SSH.

Conclusión

Estos sencillos pasos deberían ayudarlo a familiarizarse con los problemas de SSH que pueden estar impidiendo que su sistema funcione correctamente. Esperamos que esta información sea útil para tratar los problemas de SSH.

Echa un vistazo a los 3 mejores servicios de alojamiento web