Cómo encontrar si un usuario está utilizando autenticación SSH basada en contraseña o clave en Linux

Imagina este escenario. acabas de configurar Autenticación basada en clave SSH en su servidor Linux. Y luego, decidió deshabilitar completamente la autenticación basada en contraseña y permitir solo la autenticación basada en clave para todos los usuarios. Antes de deshabilitar la autenticación de contraseña, le gustaría verificar qué usuarios todavía usan contraseñas para acceder al servidor a través de SSH. ¿Cómo vas a hacer eso? Bueno, ¡es posible! Esta breve guía explica cómo encontrar si un usuario está utilizando autenticación SSH basada en contraseña o clave en Linux.

Averigüe si un usuario está utilizando autenticación SSH basada en contraseña o clave

Podemos identificar si un usuario ha iniciado sesión en un servidor Linux a través de SSH mediante contraseña o clave ssh. No es una forma 100% confiable y garantizada, pero sigue siendo un buen enfoque.

Primero, verifique si el ~/.ssh/authorized_keys el archivo existe. Porque, en el método de autenticación basado en clave SSH, la clave pública SSH debe cargarse en los sistemas a los que desea acceder a través de SSH. Las claves públicas generalmente se almacenarán en un archivo llamado ~/.ssh/authorized_keys en los sistemas remotos. Si este archivo existe, es probable que el usuario esté utilizando la autenticación basada en claves.

Luego, verifique los archivos de registro de autenticación para verificar qué método de autenticación está usando el usuario actualmente para acceder al sistema remoto. El método de autenticación está conectado "/var/log/secure" archivo en sistemas basados ​​en RPM (por ejemplo, CentOS), "/var/log/auth.log" archivo en sistemas basados ​​en DEB (por ejemplo, Ubuntu).

Simplemente busque la entrada de contraseña en los archivos de registro de autenticación usando comando grep o cualquier otra forma que prefieras.

$ grep 'password' /var/log/secure

O,

$ grep 'password' /var/log/auth.log

Salida de muestra:

[...]
May  8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May  8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2
Averigüe si un usuario está utilizando autenticación SSH basada en contraseña o clave en Linux

¿Notaste las líneas? “Contraseña aceptada para…” en la salida anterior? Significa que el usuario está accediendo a los sistemas remotos usando una contraseña. Según el resultado anterior, los usuarios “centinela” y “sk” están accediendo al sistema remoto utilizando la autenticación de contraseña ssh.

Si el usuario usa la autenticación basada en claves, probablemente verá un resultado como el siguiente:

May 8 10:40:56 ostechnix sshd[3405]: Accepted publickey for sk from 192.168.225.37 port 41992 ssh2

Por supuesto, es un poco difícil si el archivo de registro es muy largo con una gran cantidad de entradas. En ese caso, utilice "tail" Comando para ver un número particular de archivos de registro.

Para exampleel siguiente comando solo mostrará las últimas 10 entradas del archivo de registro:

$ grep 'password' /var/log/auth.log | tail -n 10

Salida de muestra:

May  8 10:21:49 ostechnix sshd[2135]: Accepted password for senthil from 192.168.225.37 port 41920 ssh2
May  8 10:21:57 ostechnix sshd[2222]: Accepted password for sk from 192.168.225.37 port 41922 ssh2
May  8 10:24:57 ostechnix sshd[2360]: Accepted password for senthil from 192.168.225.37 port 41924 ssh2
May  8 10:25:04 ostechnix sshd[2448]: Accepted password for sk from 192.168.225.37 port 41926 ssh2
May  8 10:29:40 ostechnix sshd[2663]: Accepted password for senthil from 192.168.225.37 port 41938 ssh2
May  8 10:29:55 ostechnix sshd[2765]: Accepted password for sk from 192.168.225.37 port 41940 ssh2
May  8 10:39:34 ostechnix sshd[3064]: Accepted password for senthil from 192.168.225.37 port 41986 ssh2
May  8 10:39:55 ostechnix sshd[3184]: Accepted password for sk from 192.168.225.37 port 41988 ssh2
May  8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May  8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2

También puedes usar -f marca para seguir el registro mientras realiza la prueba.

$ grep 'password' /var/log/auth.log | tail -f -n 10

Si desea verificar todo el archivo de registro para encontrar “clave” entradas página por página, utilice "less" mando:

$ grep 'password' /var/log/auth.log | less

Para encontrar todos los registros relacionados con sshd (intentos exitosos o fallidos), reemplace “contraseña” con “sshd” en todos los comandos anteriores.

$ grep 'sshd' /var/log/auth.log | tail -n 10

Otras guías relacionadas con SSH:

  • Permitir o denegar el acceso SSH a un usuario o grupo en particular en Linux
  • Limite el número de inicios de sesión SSH por usuario/grupo/sistema
  • Restrinja el acceso a los servidores Linux mediante contenedores TCP
  • Ejecutar comandos en sistemas Linux remotos a través de SSH
  • Cómo crear un alias SSH en Linux
  • Cómo SSH en un directorio particular en Linux
  • SSLH: comparta un mismo puerto para HTTPS y SSH
  • ScanSSH: servidor SSH rápido y escáner proxy abierto
  • Cómo reanudar archivos transferidos parcialmente a través de SSH usando Rsync
  • Cómo ejecutar un solo comando en múltiples sistemas remotos a la vez
  • DSH: ejecute un comando de Linux en varios hosts a la vez
  • Cómo evitar que la sesión SSH se desconecte en Linux
  • Cómo habilitar SSH en FreeBSD

Espero que esto ayude.

Related Posts