Cómo reparar el error SSH «Conexión rechazada» en Linux

Cómo reparar el error SSH «Conexión rechazada» en Linux

SSH es un protocolo de red que le permite acceder y administrar de forma segura un sistema remoto a través de una red. Al conectarse a una máquina remota a través de SSH, es posible que haya encontrado el error «conexión rechazada». Experimentar este problema puede ser frustrante, especialmente si es un administrador del sistema y tiene que realizar algunas tareas en el sistema remoto con urgencia.

Veamos algunas de las posibles causas de obtener el error SSH «conexión rechazada» y los métodos para resolverlo.

1. Compruebe si hay un servidor SSH instalado

Una posible causa del error de «conexión rechazada» es que la máquina remota no está ejecutando un servidor SSH. Sin el servidor SSH, la máquina no aceptará conexiones SSH entrantes y no podrá acceder a él de forma remota.

Entonces, el primer paso para solucionar el error es verificar si hay un servidor SSH instalado en la máquina remota. Use el siguiente comando para verificar la instalación del servidor SSH:

En distribuciones basadas en Debian:

dpkg --list | grep ssh

En distribuciones basadas en RHEL:

yum list installed | grep ssh

En openSUSE:

zypper search -i | grep ssh

En distribuciones basadas en Arch:

pacman -Q | grep ssh

Si el servidor SSH está instalado en la máquina remota, lo verá en la lista de resultados. De lo contrario, debe instalar el servidor OpenSSH en la máquina remota a la que desea acceder a través de SSH. OpenSSH es una versión de código abierto de las herramientas SSH para acceder y controlar sistemas de forma remota.

Para instalar el servidor OpenSSH, use los siguientes comandos:

En distribuciones basadas en Debian:

sudo apt install openssh-server

En distribuciones basadas en RHEL:

sudo yum install openssh-server

En openSUSE:

sudo zypper install openssh

En distribuciones basadas en Arch:

pacman -S openssh

2. Verifique el estado del servicio SSH

Otra razón para obtener el error de «conexión rechazada» puede ser que el servicio SSH esté deshabilitado o no se esté ejecutando en la máquina remota. Una vez que esté seguro de que el servidor SSH está instalado, lo segundo que debe verificar es el estado del servidor.

sudo systemctl status sshd

Si el servicio está en funcionamiento, la salida lo indicará como activo (en ejecución) . De lo contrario, verá algo como inactivo (muerto) .

estado del servidor SSH

Si el servidor SSH no se está ejecutando, puede iniciarlo manualmente con el siguiente comando:

sudo systemctl start sshd

También puede habilitar el servicio para que se inicie automáticamente al arrancar con:

sudo systemctl enable sshd

3. Compruebe el puerto SSH

De forma predeterminada, el servidor SSH se ejecuta en el puerto 22. Sin embargo, se puede cambiar el puerto predeterminado. Por lo tanto, si recibe el error SSH «conexión rechazada», puede deberse a que está intentando conectarse al servidor SSH en el puerto predeterminado 22 mientras se ejecuta en un puerto diferente.

Puede usar el comando netstat con grep para encontrar el puerto en el que escucha el servidor SSH:

sudo netstat -plntu | grep ssh

comprobar el puerto ssh

También puede encontrar el puerto SSH desde el archivo sshd_config usando el siguiente comando:

grep port /etc/ssh/sshd_config

Después de identificar el puerto SSH correcto, intente conectarse a su sistema remoto usando ese puerto específico.

4. Compruebe el cortafuegos de su sistema

La mayoría de los problemas de conectividad ocurren debido a que el firewall de su máquina bloquea algunos puertos o servicios. Si la máquina remota tiene el servidor SSH instalado y en ejecución, el siguiente paso es verificar su firewall.

Para averiguar si el cortafuegos está bloqueando la conexión, deshabilite temporalmente el cortafuegos usando los siguientes comandos:

En distribuciones de Linux basadas en Debian y Arch:

sudo ufw disable

En distribuciones basadas en RHEL y openSUSE:

sudo systemctl disable firewalld

Si el error no aparece después de deshabilitar el firewall, significa que el firewall estaba bloqueando la conexión. En este caso, vuelva a habilitar el firewall y agregue una regla que permita SSH.

En las distribuciones de Linux basadas en Debian y Arch, use el siguiente comando para permitir SSH en el firewall UFW:

sudo ufw allow ssh

Alternativamente, también puede permitir SSH por el número de puerto en el firewall. Digamos que el servidor SSH está usando el puerto 5555, luego usaría el siguiente comando para permitirlo en el firewall:

sudo ufw allow 5555

Para verificar si la regla se agregó correctamente, verifique el estado de UFW:

sudo ufw status

En distribuciones basadas en RHEL y openSUSE, use el siguiente comando para permitir SSH en el firewall:

sudo firewall-cmd --permanent --add-service=ssh

Para permitir SSH por número de puerto, use el siguiente comando:

sudo firewall-cmd --permanent --add-port={port}/tcp

Para un servidor SSH que se ejecuta en el puerto 4444, el comando sería:

sudo firewall-cmd --permanent --add-port=4444/tcp

Para verificar la adición exitosa de la regla en el firewall, ejecute:

sudo firewall-cmd --list-all

5. Resolver conflictos de direcciones IP

También existe la posibilidad de que ocurra el error de «conexión rechazada» de SSH debido a que la IP del servidor SSH está en conflicto con la IP de otro sistema en la red. Esto sucede cuando dos sistemas en una red afirman tener la misma dirección IP, lo que genera un conflicto de IP.

Para confirmar si hay un conflicto de IP en su red, use la herramienta arp-scan de la siguiente manera:

arp-scan [network-id]

Si hay un conflicto de IP, verá la dirección IP duplicada en la salida. La siguiente captura de pantalla es un ejemplo de un conflicto de IP en una red:

usando arp-scan para encontrar ip duplicada

Para evitar conflictos de IP, asegúrese de que ningún dispositivo tenga direcciones IP estáticas que se superpongan con las direcciones del grupo DHCP.

Sugerencia adicional: ejecute SSH en modo detallado

Siempre que encuentre un error de SSH, intente ejecutar el comando ssh en modo detallado para localizar el problema. Para ejecutar SSH en modo detallado, use el comando ssh con la opción -vvv de la siguiente manera:

ssh -vvv username@ip_address

depuración ssh

En el modo detallado, verá mensajes de depuración en cada paso de la conexión que lo ayudarán a comprender dónde radica el problema.

Solución de problemas del error SSH «Conexión rechazada» en Linux

Al identificar las posibles causas del error de conectividad de SSH e implementar las soluciones sugeridas, podrá solucionar y resolver el error de «conexión rechazada» de SSH. Además de estos pasos, asegúrese de conectarse a la dirección IP correcta y utilizar las credenciales de inicio de sesión correctas.

Para que su conexión remota sea más segura, puede configurar la autenticación de dos factores para SSH en Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *