Cómo depurar las conexiones SSH

Cómo depurar las conexiones SSH
Este tutorial repasará algunos métodos y técnicas rápidas que puede usar para diagnosticar varias conexiones SSH, incluso cuando no puede conectarse a SSH, errores de autenticación y tales.

NOTA: Antes de comenzar, asegúrese de que el dispositivo al que desea conectarse está en línea y el error no es el resultado de que el dispositivo no esté disponible.

Problema 1: el servicio SSH no se ejecuta

Una causa común de errores de conexión SSH es el servicio que no se ejecuta en el host remoto. Esto puede deberse al cierre accidental del servicio o al servicio que no comienza después de un reinicio del sistema.

Para verificar si el servicio SSH se está ejecutando, use el administrador del sistema usando el comando:

SUDO SYSTEMCTL ESTADO 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 ejecuta, use el sistema para iniciar el servicio. Si el servicio responde con errores, verifique los registros y solucione los problemas reportados en el registro.

Use el comando a continuación para verificar los registros de servicio.

GREP 'SSHD'/var/log/auth.registro

Use el comando a continuación para iniciar o detener el servicio SSH usando Systemd.

sudo systemctl inicio sshd

Problema 2: SSH en puerto no estándar

El segundo problema común al depurar las conexiones SSH es el uso de un puerto no estándar. Si SSH se ejecuta 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 ejecuta SSH.

Para ver el puerto en el que se está ejecutando SSH, use una herramienta como NetStat como se muestra a continuación:

[centos@centos8 ~] $ sudo netstat -ptln | grep ssh
TCP 0 0 0.0.0.0:56 0.0.0.0:* Escucha 1131/sshd
tcp6 0 0 ::: 56 ::::* Escucha 1131/sshd

La salida anterior muestra en qué puerto se ejecuta 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:

SSH UserName@ip -p 56

Problema 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á utilizando el mismo puerto que SSH, verifique los registros utilizando el comando:

Sudo Journalctl -T SSHD

Este comando debe devolver un error como el que se muestra a continuación, lo que indica si otro proceso usa el puerto con destino a SSH.

SSHD [110611]: Error: BIND al puerto 80 en 0.0.0.0 fallido: dirección ya en uso

Es bueno asegurarse de que el error de enlace del puerto sea causado por otro servicio, no medidas de seguridad como Selinux.

Solución

Hay varias formas en que puede usar para resolver este problema. Éstas 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_config
Puerto 3009

Otro método que puede usar para resolver este problema es detener el servicio utilizando el puerto SSH. Por ejemplo, detenga el servicio Apache usando el puerto 80 como:

sudo systemctl stop httpd
sudo systemctl deshabilitar httpd

Problema 4: Firewall

Si ha probado todos los métodos anteriores y aún no hay 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 del firewall son amplias y pueden variar según la configuración del sistema. Por lo 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.

sudo UFW Permitir /TCP

También puede restablecer todas las reglas de UFW y comenzar de nuevo. Eso le permitirá solucionar problemas de las conexiones de firewall desde cero.

reinicio de sudo ufw

Problema 5: inicios de sesión de contraseña deshabilitada

A veces puede configurar SSH para no aceptar los inicios de sesión de contraseña y solo usar la autenticación de clave pública. Eso puede causar un problema si la clave pública no está disponible en el servidor o falta su par de claves privadas.

Para verificar si se permiten inicios de sesión de contraseña, Cat the SSH Config como:

[centos@centos8] $ sudo grep contraseña Authentication/etc/ssh/sshd_config
#Passwordauthentication sí
Contraseña Autenticación Sí
# PasswordAuthentication. Dependiendo de su configuración de PAM,
# Autenticación de PAM, luego habilite esto pero establezca contraseña

La salida anterior muestra que los inicios de sesión de contraseña están permitidos.

Solución

Para resolver el problema anterior, puede usar dos métodos:

Primero, si tiene el valor establecido en no, cambie el valor de autenticación de contraseña a sí y reinicie el servicio SSH.

El otro método es crear un par de valores clave SSH y usarlo para iniciar sesión en el servidor. Para aprender a crear un par de valores clave SSH, use la siguiente guía.

https: // linuxhint.com/find-ssh-poublic-key/

https: // linuxhint.com/use-ssh-copy-id-command/

Conclusión

En esta guía rápida, discutimos las principales causas de los errores de conexión SSH y cómo puede resolverlos. Aunque esta guía cubre problemas comunes, puede encontrar errores específicos para su sistema en función de la configuración y los permisos.