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.