¿Recibe errores de «conexión rechazada» al intentar conectarse a través de SSH en Linux? Si es así, ¡esta guía es para ti! ¡Siga a continuación mientras repasamos algunas posibles soluciones al error de «conexión rechazada» en su sistema Linux!
Solución 1: el puerto 22 está bloqueado por el firewall
Una posible razón por la que puede estar recibiendo «conexión ssh rechazada» mientras se conecta a un escritorio o servidor Linux con un servidor OpenSSH configurado es que el firewall bloquea el puerto predeterminado.
Para resolver esto, puede desbloquear el puerto 22 usando su firewall. En esta guía, le mostraremos cómo desbloquear el puerto 22 usando el firewall de línea de comandos UFW para Ubuntu / Debian y otras distribuciones que usan UFW. También cubriremos FirewallD para aquellos que usan distribuciones de RedHat como Fedora, RHEL, etc.
Nota: si usa un sistema de firewall que no sea UFW o Firewalld en Linux, deberá consultar el manual de su software para aprender cómo desbloquear el puerto 22.
Para iniciar el proceso de desbloqueo, necesitará una ventana de terminal. Inicie una sesión de terminal en el escritorio Linux o el servidor Linux que aloja su servidor OpenSSH. Una vez que la ventana de la terminal esté abierta, siga las instrucciones de desbloqueo que correspondan con el firewall que utiliza.
Desbloquee el puerto 22 en Ubuntu, Debian y otros sistemas operativos Linux que usan UFW
En muchos servidores y escritorios Linux, el firewall UFW se ejecuta de forma predeterminada. Si este sistema está funcionando, el puerto 22 puede estar bloqueado. Para desbloquearlo y permitir el tráfico SSH a través del puerto 22, deberá utilizar el permitir mando.
En la terminal, ejecute el sudo ufw permitir ssh mando. Este comando le dirá al firewall de UFW que permita el perfil «ssh» a través del firewall, que es, por defecto, el puerto 22.
sudo ufw allow ssh
Si usa SSH en un puerto personalizado que no sea el puerto 22, ingrese el permitir ssh El comando no funcionará y UFW continuará bloqueando las conexiones. Para solucionar este problema, puede utilizar el ufw permitir comando y especifique un puerto para desbloquear.
Por ejemplo, si su escritorio o servidor Linux ejecuta OpenSSH en el puerto personalizado 443, puede desbloquearlo a través del firewall UFW usando el comando a continuación.
sudo ufw allow 443/tcp
Para desbloquear puertos SSH personalizados con el firewall UFW en Ubuntu, Debian o cualquier otro servidor / escritorio que ejecute el firewall UFW, especifique el puerto junto con el permitir mando.
sudo ufw allow MY_CUSTOM_SSH_PORT/tcp
Desbloquee el puerto 22 en Fedora, RHEL y otros sistemas operativos Linux que usan FirewallD
Si está ejecutando un servidor o escritorio que usa Fedora, RHEL u otro sistema operativo Linux basado en Redhat, probablemente esté usando Firewalld. Si recibe errores de «conexión rechazada», puede deberse a que el puerto 22 está bloqueado. A continuación, le indicamos cómo habilitarlo con FirewallD.
Primero, debe iniciar sesión en la cuenta raíz en la terminal. Se requiere acceso de root para jugar con los ajustes de configuración de FirewallD. Para acceder a la cuenta raíz, ejecute lo siguiente su – mando.
su -
Después de acceder a la cuenta root usando el su comando, use el firewall-cmd comando para agregar una nueva regla de firewall que permita el paso del puerto 22 (tráfico SSH).
firewall-cmd --zone=public --add-port=22/tcp --permanent
Si está ejecutando SSH en un puerto personalizado en lugar del puerto 22, el comando anterior no funcionará. En su lugar, deberá cambiar el comando «add-port = 22» a su puerto personalizado.
firewall-cmd --zone=public --add-port=MY_CUSTOM_SSH_PORT/tcp --permanent
Una vez que haya agregado la nueva regla a la configuración de Firewalld, deberá aplicar la nueva configuración. Para aplicar estos ajustes, ejecute el firewall-cmd –reload mando.
firewall-cmd --reload
Solución 2: el servicio OpenSSH no funciona
Si el desbloqueo de los puertos SSH en el firewall no funcionó, es posible que esté lidiando con el hecho de que OpenSSH no funciona en su servidor. Para comprobar si el servicio está inactivo, abra una terminal y ejecute el servicio OpenSSH estado systemctl mando.
systemctl status sshd
Después de ejecutar el comando de estado, verá una lectura del servicio sshd, el archivo que permite que el servidor OpenSSH funcione en la mayoría de los sistemas operativos Linux.
Busque en la lectura de SSH la sección «Activo». Si dice «Activo: inactivo (muerto)», su servicio OpenSSH está inactivo y debe reiniciarse. Si dice «activo (en ejecución)», deberá probar otra solución para determinar por qué se rechazan las conexiones.
Para iniciar la copia de seguridad del servicio OpenSSH nuevamente, puede ejecutar el systemctl start sshd mando.
sudo systemctl start sshd
Corrección 2.5: el servicio OpenSSH no está habilitado
Otra posible razón por la que OpenSSH rechaza las conexiones es el simple hecho de que el servicio sshd de OpenSSH no está habilitado al inicio. Si no lo habilita al inicio, SSH puede fallar en cada reinicio, lo que causa problemas de conexión. Para solucionar este problema, puede ejecutar el siguiente comando systemctl.
sudo systemctl enable sshd
Solución 3: OpenSSH se está ejecutando en un puerto diferente
A muchos usuarios les gusta personalizar sus configuraciones SSH al configurar un servidor SSH. Una de las cosas más habituales es cambiar el puerto predeterminado de 22 a otro.
Si ha cambiado su puerto SSH, debe especificarlo para que la conexión sea exitosa. Por ejemplo, si un servidor SSH se ejecuta en el puerto 443, la mera ejecución del comando siguiente provocará un error de conexión.
ssh my-user@my-server
Puede solucionar este rechazo de conexión especificando el número de puerto durante la conexión utilizando el -pags conmutador de línea de comandos.
ssh -p CUSTOM_PORT_NUMBER user@my-server
Danos tu opinión