GNU/Linux >> Tutoriales Linux >  >> Linux

Solucionar problemas de SSH

Este artículo le muestra cómo solucionar problemas de Secure Shell (SSH) en un servidor Linux®.

Diferentes tipos de errores

Si no puede conectarse mediante SSH a un servidor, debe prestar atención a los errores (o la falta de ellos) que recibe. La siguiente lista describe algunos posibles errores.

Acceso denegado o Autenticación rechazada

Este tipo de error ocurre cada vez que inicia sesión a través de SSH con credenciales incorrectas. Si recibe este error, puede verificar lo siguiente:

  • Asegúrese de haber escrito correctamente el nombre de usuario y la contraseña.
  • Si está utilizando un par de claves SSH, asegúrese de tener la clave privada instalada en su máquina local.

Puerto 22:Conexión rechazada

Este error ocurre por las siguientes razones:

  • SSH no está instalado o en ejecución.
  • SSH está escuchando en un puerto diferente.
  • Las reglas del cortafuegos no permiten SSH.

Error de red:conexión agotada

Este error ocurre a menudo debido a problemas de conectividad de red en el servidor o en su máquina local. Cada vez que reciba estos errores, asegúrese de que su computadora local esté conectada a Internet. Si está conectado, compruebe también la conexión del servidor para asegurarse de que el servidor se está ejecutando.

Verificar desde el exterior

Estas son algunas formas comunes de solucionar problemas de SSH desde fuera de su servidor:

nmap

nmap es una herramienta de exploración de red y escáner de seguridad o puerto. Puede usar esta herramienta para verificar si el puerto para SSH está abierto en el servidor. El siguiente ejemplo proporciona el comando y su salida:

$ nmap <ip-address-of-host>

Starting Nmap 6.40 ( https://nmap.org ) at 2020-03-21 23:44 UTC
Nmap scan report for <ip-address-of-host>
Host is up (0.033s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 4.35 seconds

ssh -vvv

Usando ssh con el -vvv flags produce una salida detallada a medida que accede al servidor mediante SSH. Este comando puede proporcionar información útil para solucionar problemas exactamente donde podría estar el problema.

Comprobar desde el interior

Si tiene problemas con SSH, puede iniciar sesión utilizando la consola de emergencia para solucionar los problemas del servidor y verificar las siguientes condiciones:

Proceso SSH

Primero, asegúrese de que el proceso SSH se esté ejecutando ejecutando el siguiente comando:

  • Para Ubuntu® 16.04+, Debian® 8+ y Centos® 7+:systemctl status sshd
  • Para Centos 6:service sshd status

Si no ve el servicio ejecutándose, puede iniciar el proceso usando el siguiente comando:

  • Para Ubuntu 16.04+, Debian 8+ y Centos 7+:systemctl start sshd
  • Para Centos 6:service sshd start

netstat

El netstat El comando le muestra las conexiones actuales en el servidor. Este comando es una buena manera de verificar y ver en qué puerto se está ejecutando SSH. Cuando ejecuta netstat , usa las banderas -plnt para obtener el siguiente resultado:

# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      0 :::22                   :::*                    LISTEN      13631/sshd             

Archivo de configuración SSH

El archivo de configuración de SSH, /etc/ssh/sshd_config , establece la configuración de SSH. Hay muchas opciones en el archivo de configuración, pero aquí hay algunas que debe tener en cuenta:

Port 22            <---- The port ssh runs on
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

~
~
~

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes  <---- Allows or block users logging in as root
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes  <---- Will state whether or not a user needs an ssh key to log in

Alternativamente, puede usar grep comando para buscar estas líneas específicas. Cuando usas el grep comando, debe ser específico al buscar una frase específica. Tenga cuidado con la puntuación, las mayúsculas y la ortografía.

$ sudo grep Port /etc/ssh/sshd_config
#   Port 22

El cortafuegos

Si tiene conectividad de red, todas las configuraciones son correctas y aún no puede conectarse a través de SSH, es posible que desee ver las reglas de su firewall en el servidor. En servidores Linux, iptables tiene estas reglas. Para listar las reglas de firewall en iptables , ejecute el comando iptables -L . Para obtener más información sobre iptables , lea Introducción a iptables.

fail2ban

fail2ban es una aplicación que bloquea una dirección IP después de un cierto número de intentos fallidos de inicio de sesión. Para verificar las cárceles, puede ejecutar el comando fail2ban-client status . Este comando le muestra todas las cárceles configuradas en el servidor y las direcciones IP que están en esas cárceles.

Los archivos de registro

Cuando todo lo demás falla, vaya a los archivos de registro. Estos archivos proporcionan información sobre si está llegando o no al servidor, si está utilizando una contraseña no válida, etc. Los archivos de registro que debe revisar incluyen los siguientes archivos:

  • Ubuntu o Debian:/var/log/auth.log
  • CentOS o RHEL®:/var/log/secure

Al buscar en estos archivos de registro, puede utilizar less Comando para analizar todo el archivo y buscar una hora o cadena específica. Si ha iniciado sesión en el servidor desde la consola, puede usar tail -f en los registros mientras intenta SSH en el servidor. Luego, puede ver la actualización de los archivos de registro en tiempo real.


Linux
  1. Ssh:¿mover una aplicación en ejecución a un servidor X diferente?

  2. Ssh, Sudo, luego descargar?

  3. ¿Cómo enviar Ssh a un servidor usando otro servidor?

  4. Solucionar problemas de acceso remoto a SQL Server

  5. ¿Por qué mi inicio de sesión SSH es lento?

Cómo usar SSH para conectarse a un servidor remoto

Tunelización y proxy SSH

Servidor SSH

Cómo agregar una clave pública SSH al servidor

12 cosas que hacer después de instalar un servidor Linux

Cómo SSH al servidor a través de Linux