GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo reparar el error de conexión SSH rechazada

Introducción

¿Tiene problemas para acceder a un servidor remoto a través de SSH? Si SSH responde con un mensaje de "Conexión rechazada", es posible que deba modificar la solicitud o verificar la configuración.

En este tutorial, encontrará las razones más comunes por las que se rechaza la conexión SSH.

¿Por qué se rechaza la conexión cuando utilizo SSH?

Hay muchas razones por las que puede recibir el mensaje "Conexión rechazada " error al intentar SSH en su servidor. Para resolver este problema, primero debe identificar por qué el sistema rechazó su conexión a través de SSH.

A continuación encontrará algunas de las razones más comunes que pueden causar una denegación de conexión SSH.

Cliente SSH no instalado

Antes de solucionar otros problemas, el primer paso es comprobar si SSH está correctamente instalado. La máquina desde la que accede al servidor debe tener configurado el cliente SSH. Sin la configuración de cliente correcta, no puede acceder de forma remota a un servidor.

Para verificar si tiene el cliente SSH en su sistema, escriba lo siguiente en la ventana de la terminal:

ssh

Si el terminal proporciona una lista de ssh opciones de comando, el cliente SSH está instalado en el sistema. Sin embargo, si responde con comando no encontrado , debe instalar el cliente OpenSSH.

Solución:instalar cliente SSH

Para instalar el cliente SSH en su máquina, abra la terminal y ejecute uno de los comandos que se enumeran a continuación.

Para sistemas Ubuntu/Debian:

sudo apt install openssh-client

Para sistemas CentOS/RHEL:

sudo yum install openssh-client

Demonio SSH no instalado en el servidor

Al igual que necesita la versión de cliente de SSH para acceder a un servidor remoto, necesita la versión de servidor para escuchar y aceptar conexiones. Por lo tanto, un servidor puede rechazar una conexión entrante si falta el servidor SSH o si la configuración no es válida.

Para verificar si SSH está disponible en el servidor remoto, ejecute el comando:

ssh localhost

Si la salida responde con "Conexión rechazada ", continúe con la instalación de SSH en el servidor.

Solución:instalar SSH en el servidor remoto

Para solucionar el problema de la falta de un servidor SSH, consulte cómo instalar el servidor OpenSSH.

Las credenciales son incorrectas

Los errores tipográficos o las credenciales incorrectas son razones comunes para una conexión SSH rechazada. Asegúrese de no escribir mal el nombre de usuario o contraseña .

Luego, verifique si está utilizando la dirección IP correcta. del servidor.

Finalmente, verifica que tienes el puerto SSH correcto abierto. Puede verificar ejecutando:

grep Port /etc/ssh/sshd_config

La salida muestra el número de puerto, como en la imagen de abajo.

El servicio SSH está inactivo

El servicio SSH debe estar habilitado y ejecutarse en segundo plano. Si el servicio está inactivo, el demonio SSH no puede aceptar conexiones.

Para verificar el estado del servicio, ingrese este comando:

sudo service ssh status

La salida debe responder que el servicio está activo. Si la terminal responde que el servicio está inactivo, habilítelo para resolver el problema.

Solución:habilitar el servicio SSH

Si el sistema muestra que el demonio SSH no está activo, puede iniciar el servicio ejecutando:

systemctl start sshd

Para permitir que el servicio se ejecute en el arranque, ejecute el comando:

sudo systemctl enable sshd

El cortafuegos impide la conexión SSH

SSH puede rechazar una conexión debido a las restricciones del firewall. El cortafuegos protege al servidor de conexiones potencialmente dañinas. Sin embargo, si tiene SSH configurado en el sistema, debe configurar el firewall para permitir las conexiones SSH.

Asegúrese de que el cortafuegos no bloquee las conexiones SSH, ya que esto puede causar la "conexión rechazada " error.

Solución:permitir conexiones SSH a través del cortafuegos

Para solucionar el problema que mencionamos anteriormente, puede usar ufw (Firewall sin complicaciones), la herramienta de interfaz de línea de comandos para administrar la configuración del cortafuegos.

Escriba el siguiente comando en la ventana de terminal para permitir las conexiones SSH:

sudo ufw allow ssh

El puerto SSH está cerrado

Cuando intenta conectarse a un servidor remoto, SSH envía una solicitud a un puerto específico. Para aceptar esta solicitud, un servidor debe tener abierto el puerto SSH.

Si el puerto está cerrado, el servidor rechaza la conexión.

De manera predeterminada, SSH usa el puerto 22. Si no ha realizado ningún cambio de configuración en el puerto, puede verificar si el servidor está escuchando las solicitudes entrantes.

Para enumerar todos los puertos que están escuchando, ejecute:

sudo lsof -i -n -P | grep LISTEN

Busque el puerto 22 en la salida y verifique si es ESTADO está configurado para ESCUCHAR .

Alternativamente, puede verificar si un puerto específico está abierto, en este caso, el puerto 22:

sudo lsof -i:22

Solución:abrir puerto SSH

Para habilitar el puerto 22 para ESCUCHAR solicitudes, use iptables comando:

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

También puede abrir puertos a través de la GUI modificando la configuración del firewall.

Depuración y registro de SSH

Para analizar los problemas de SSH en Linux, puede activar el modo detallado o depuración modo . Cuando habilita este modo, SSH imprime mensajes de depuración que ayudan a solucionar problemas de conexión, configuración y autenticación.

Hay tres niveles de verbosidad:

  • nivel 1 (-v )
  • nivel 2 (-vv )
  • nivel 3 (-vvv )

Por lo tanto, en lugar de acceder a un servidor remoto usando la sintaxis ssh [server_ip] agregue el -v opción y ejecutar:

ssh -v [server_ip]

Alternativamente, puede usar:

ssh -vv [server_ip]

o

ssh -vvv [server_ip]

Ubuntu
  1. Cómo aumentar el tiempo de espera de la conexión SSH

  2. ¿Conexión Ssh rechazada desde el interior de la LAN?

  3. ¿Cómo enrutar Internet a través de un túnel Ssh?

  4. Arreglar ::Conexión de error SSH de Linux rechazada

  5. Cómo reparar el error de conexión rechazada de wget cuando estoy detrás de un proxy

Cómo arreglar "La información de actualización está desactualizada" en Ubuntu Linux

Cómo habilitar el servidor SSH en Ubuntu 22.04

Cómo instalar el servidor OpenSSH en Ubuntu 20.04 LTS

¿Cómo conectarse a Internet a través de un servidor remoto a través de una conexión Ssh?

Cómo arreglar un error de conexión a la base de datos

Reparación de error de tubería rota con conexión SSH