NOTA: Antes de comenzar, asegúrese de que el dispositivo al que desea conectarse esté en línea y que el error no sea el resultado de que el dispositivo no esté disponible.
Problema 1: el servicio SSH no se está ejecutando
Una causa común de errores de conexión SSH es que el servicio no se ejecuta en el host remoto. Esto puede deberse a un cierre accidental del servicio o al servicio que no se inicia después de reiniciar el sistema.
Para verificar si el servicio SSH se está ejecutando, use el administrador del sistema con el comando:
sudosystemctl status sshd
El comando anterior debe informar si el servicio se está ejecutando o no, como se muestra en las capturas de pantalla a continuación.
Solución
Para resolver los problemas de SSH causados por el servicio que no se está ejecutando, use el sistema para iniciar el servicio. Si el servicio responde con errores, verifique los registros y solucione los problemas informados en el registro.
Utilice el siguiente comando para verificar los registros de servicio.
sujeción 'sshd' /dónde/Iniciar sesión/auth.logUtilice el siguiente comando para iniciar o detener el servicio SSH con systemd.
sudosystemctl start sshdProblema 2: SSH en un puerto no estándar
El segundo problema común al depurar conexiones SSH es el uso de un puerto no estándar. Si SSH se está ejecutando en otro puerto que no sea el puerto predeterminado 22, no se conectará al host remoto a menos que especifique explícitamente el puerto en el que se está ejecutando SSH.
Para ver el puerto en el que se está ejecutando SSH, use una herramienta como netstat como se muestra a continuación:
[cientos@centos8 ~]$sudo netstat -ptln | sujeción sshtcp0 00.0.0.0:560.0.0.0:*ESCUCHA1131/sshd
tcp60 0:::56:::*ESCUCHA1131/sshd
La salida anterior muestra en qué puerto se está ejecutando el servicio SSH. En este caso, es el puerto 56.
Solución
Para resolver este problema, puede usar la información de netstat para especificar explícitamente el puerto en su comando ssh como:
sshnombre de usuario@ip -pag 56Problema 3: otro servicio que usa el mismo puerto
Otra causa de errores de conexión SSH es si otro servicio o proceso también usa el mismo puerto que el servicio SSH. Por ejemplo, si SSH se especifica explícitamente para ejecutarse en el puerto 80 (idea terrible), un servicio como Apache puede estar usando el mismo puerto.
Para ver si otro proceso está usando el mismo puerto que SSH, verifique los registros usando el comando:
sudojournalctl-tsshdEste comando debería devolver un error como el que se muestra a continuación, indicando si otro proceso usa el puerto vinculado a SSH.
sshd[110611]: error: enlazar al puerto80en 0.0.0.0 falló: dirección yaenusarEs bueno asegurarse de que el error de enlace del puerto sea causado por otro servicio, no por medidas de seguridad como SELinux.
Solución
Hay varias formas que puede utilizar para resolver este problema. Éstos incluyen:
El primero es vincular el servicio SSH a un puerto diferente. Puede hacer esto editando el archivo de configuración SSH. Por ejemplo, cambie la entrada del puerto al puerto 3009 como se muestra en los comandos:
sudo nano /etc/ssh/sshd_configPuerto3009
Otro método que puede utilizar para resolver este problema es detener el servicio mediante el puerto SSH. Por ejemplo, detenga el servicio apache usando el puerto 80 como:
sudosystemctl detener httpdsudosystemctl deshabilitar httpd
Problema 4: Cortafuegos
Si ha probado todos los métodos anteriores y aún no tiene conexión SSH, puede pasar a la siguiente causa posible del problema: restricciones de firewall. Dependiendo del método de firewall que esté utilizando (UFW o Iptables), debe asegurarse de que el firewall permita conexiones SSH.
Solución
Las reglas de firewall son amplias y pueden variar según la configuración del sistema. Por tanto, no puedo cubrir todos los aspectos. Sin embargo, la siguiente es una solución simple para garantizar que el servicio SSH esté permitido en UFW Firewall.
sudoufw permitir<ssh_port>/tcpTambién puede restablecer todas las reglas de UFW y comenzar de nuevo. Eso le permitirá solucionar problemas de las conexiones del firewall desde cero.
sudorestablecimiento de ufwProblema 5: inicios de sesión con contraseña deshabilitados
A veces, puede configurar SSH para que no acepte inicios de sesión con contraseña y solo use autenticación de clave pública. Eso puede causar un problema si la clave pública no está disponible en el servidor o si falta su par de claves privadas.
Para verificar si los inicios de sesión con contraseña están permitidos, coloque la configuración de ssh como:
[cientos@centos8]$sudo sujeciónAutenticación de contraseña/etc/ssh/sshd_config#PasswordAuthentication sí
Autenticación de contraseñasí
# Autenticación de contraseña. Dependiendo de su configuración de PAM,
# Autenticación PAM, luego habilite esto pero configure PasswordAuthentication
El resultado anterior muestra que se permiten inicios de sesión con contraseña.
Solución
Para resolver el problema anterior, puede utilizar dos métodos:
Primero, si tiene el valor establecido en no, cambie el valor de PasswordAuthentication a yes y reinicie el servicio ssh.
El otro método es crear un par clave-valor ssh y usarlo para iniciar sesión en el servidor. Para aprender a crear un par clave-valor ssh, use la siguiente guía.
https://linuxhint.com/find-ssh-public-key/
https://linuxhint.com/use-ssh-copy-id-command/
Conclusión
En esta guía rápida, analizamos las principales causas de los errores de conexión SSH y cómo puede resolverlos. Aunque esta guía cubre problemas comunes, es posible que encuentre errores específicos de su sistema según la configuración y los permisos.