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. Comprobar si hay un servidor SSH instalado
Una posible causa del error "conexión rechazada" es que la máquina remota no se 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 --lista | grep ssh
En distribuciones basadas en RHEL:
lista yum instalada | grep ssh
En openSUSE:
búsqueda de zypper -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 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 abre el servidor sh
En distribuciones basadas en RHEL:
sudo yum install abre el servidor sh
En openSUSE:
sudo zypper instalar abresh
En distribuciones basadas en Arch:
pacman -S abresh
2. Comprobar 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 estado sshd
Si el servicio está en funcionamiento, la salida lo indicará como activo (corriendo). De lo contrario, verás algo como inactivo (muerto).
Si el servidor SSH no se está ejecutando, puede iniciarlo manualmente con el siguiente comando:
sudo systemctl iniciar sshd
También puede habilitar el servicio para que se inicie automáticamente al arrancar con:
sudo systemctl habilitar 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 use el comando netstat con grep para encontrar el puerto en el que escucha el servidor SSH:
sudo netstat-plntu | grep ssh
También puede encontrar el puerto SSH desde el sshd_config archivo usando el siguiente comando:
puerto grep /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 deshabilitar
En distribuciones basadas en RHEL y openSUSE:
sudo systemctl deshabilitar 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 cortafuegos UFW:
sudo ufw permitir 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 permitir 5555
Para verificar si la regla se agregó correctamente, verifique el estado de UFW:
sudo ufw estado
En distribuciones basadas en RHEL y openSUSE, use el siguiente comando para permitir SSH en el firewall:
sudo firewall-cmd --permanente --add-service=ssh
Para permitir SSH por número de puerto, use el siguiente comando:
sudo firewall-cmd --permanent --add-port={puerto}/tcp
Para un servidor SSH que se ejecuta en el puerto 4444, el comando sería:
sudo firewall-cmd --permanente --add-port=4444/tcp
Para verificar la adición exitosa de la regla en el firewall, ejecute:
sudo cortafuegos-cmd --listar-todos
5. Resolver conflictos de direcciones IP
También existe la posibilidad de que se produzca el error SSH "conexión rechazada" 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 resulta en 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 [id-red]
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:
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 el -vvv opción de la siguiente manera:
ssh -vvv usuario@dirección_ip
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.