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 un error de "conexión rechazada". Experimentar este problema puede ser frustrante, especialmente si es un administrador del sistema y debe realizar algunas tareas con urgencia en el sistema remoto.

Echemos un vistazo a algunas de las posibles razones para mostrar el error de "conexión rechazada" en SSH y las formas de resolverlo. Verificar La guía completa sobre cómo configurar SSH en Linux y probar su configuración.

Cómo reparar el error "Conexión rechazada" a través de SSH en Linux

1. Verifique que el servidor SSH esté instalado

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

Entonces, el primer paso en la resolución de problemas es verificar si un servidor SSH ya está instalado en la máquina remota. Use el siguiente comando para verificar que el servidor SSH está instalado:

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 hay un servidor SSH instalado en la máquina remota, lo verá en la lista de resultados. De lo contrario, debe instalar un 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 el acceso y control remoto de los sistemas.

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

Verificar Cómo controlar Linux de forma remota desde Windows.

2. Comprobar el estado del servicio SSH

Otra razón para un error de "conexión rechazada" podría ser que el servicio SSH esté inactivo o no funcione en la máquina remota. Una vez que se haya asegurado de que el servidor SSH está instalado, lo siguiente que debe verificar es el estado del servidor.

sudo systemctl start sshd

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

Cómo reparar el error "Conexión rechazada" a través de SSH en Linux

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

sudo systemctl enable sshd

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

sudo netstat -plntu | grep ssh

3. Verifique el puerto SSH

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

Puedes usar el comando netstat مع grep Para encontrar el puerto en el que escucha su servidor SSH:

sudo netstat -plntu | grep ssh

Cómo reparar el error "Conexión rechazada" a través de SSH en Linux

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

grep port /etc/ssh/sshd_config

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

4. Compruebe el cortafuegos del sistema

La mayoría de los problemas de conexión se deben a que el firewall de su dispositivo bloquea algunos puertos o servicios. Si la máquina remota tiene un servidor SSH instalado y en ejecución, el siguiente paso es verificar la configuración del firewall.

Para ver si el firewall está bloqueando la conexión, deshabilite temporalmente el firewall con 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, entonces el firewall estaba bloqueando la conexión. En este caso, vuelva a habilitar el firewall y agregue la regla Permitir SSH.

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

sudo ufw allow ssh

Alternativamente, también puede permitir SSH al número de puerto en el firewall. Suponga que su servidor SSH está usando el puerto 5555, entonces puede usar el siguiente comando para permitirlo en el firewall:

sudo ufw allow 5555

Para verificar que la regla se agregó correctamente, verifique el estado del 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 con el número de puerto, use el siguiente comando:

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

Para el servidor SSH que se ejecuta en el puerto 4444 , el comando será el siguiente:

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

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

sudo firewall-cmd — list-all

5. Resolver conflictos de direcciones IP

También existe la posibilidad de que se produzca un error de "conexión rechazada" de SSH debido a un conflicto de la dirección IP del servidor SSH con la dirección IP de otro sistema en la red. Esto ocurre 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 una herramienta escaneo arp Como sigue:

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 la red:

Cómo reparar el error "Conexión rechazada" a través de SSH en Linux

Para evitar conflictos de IP, asegúrese de que los dispositivos no tengan direcciones IP estáticas que se superpongan con las direcciones del grupo DHCP. Verificar ¿Qué es DHCP, qué significa y debería usarse?

Consejo adicional: ejecute SSH en modo Verbose

Cuando encuentre un error de SSH, intente ejecutar el comando ssh en modo Verbose para localizar el problema. Para ejecutar SSH en modo Verbose, use el comando ssh con pepino -vvv Como sigue:

ssh -vvv username@ip_address

Cómo reparar el error "Conexión rechazada" a través de SSH en Linux

En el modo detallado, verá mensajes de depuración en cada paso de la conexión que lo ayudarán a comprender dónde está el problema. Verificar Las mejores aplicaciones de cliente SSH para iOS para la administración remota de servidores.

Solución de problemas de "Conexión rechazada" a través de SSH en Linux

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

Para que su conexión remota sea aún más segura, puede configurar la autenticación de dos factores para SSH en Linux. Puedes ver ahora Cómo acceder de forma remota al escritorio de Ubuntu desde Windows.

Ir al botón superior