Cómo encontrar conexiones SSH activas en Linux

Si eres administrador de sistemas Linux y responsable de la gestión de servidores, es posible que a menudo necesites saber cuántas conexiones ssh están activas en tu servidor y de dónde proceden. Hay varios comandos y herramientas disponibles en Linux para encontrar las conexiones SSH activas en tu servidor.

En este tutorial, mostraremos cómo encontrar las conexiones SSH activas con diferentes métodos en Linux.

Requisitos previos

  • Un servidor con sistema operativo Linux.
  • Tener acceso de root en ese servidor.

Encontrar la conexión SSH activa con el comando who

who es la utilidad de línea de comandos de Linux que se utiliza para mostrar una lista de los usuarios que han iniciado sesión en el servidor.

Abre tu terminal y ejecuta el comando who para encontrar las conexiones activas en tu servidor:

who

Deberías obtener la siguiente salida:

root     pts/0        2020-05-01 02:37 (27.61.161.61)
root     pts/1        2020-05-01 02:39 (45.58.38.21)

Como puedes ver, hay dos conexiones SSH activas desde la IP 27.61.161.61 y 45.58.38.21.

Encontrar la conexión SSH activa con el comando w

w es otra utilidad de línea de comandos que muestra la información sobre el usuario actualmente conectado en tu servidor. Este comando proporciona más información que el comando who, como las sesiones activas y los procesos en ejecución en esas sesiones.

Puedes ejecutar el comando w como se muestra a continuación:

w

Deberías obtener la siguiente salida:

 02:40:07 up 1 day, 18:35,  2 users,  load average: 0.02, 0.02, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    27.61.161.61     02:37    1.00s  0.04s  0.01s ssh [email protected]
root     pts/1    45.58.38.21      02:39    1.00s  0.02s  0.00s w

Como puedes ver, este comando también muestra los detalles del tiempo de inactividad, la IP de origen, el tiempo de inicio de sesión, el promedio de carga y los procesos.

Encontrar la conexión SSH activa con el comando ps

El comando ps también te da la información sobre las sesiones SSH activas en tu servidor. Te da alguna información adicional como el PID de las conexiones SSH activas.

Puedes ejecutar el comando ps como se muestra a continuación

ps auxwww | grep sshd: | grep -v grep

Deberías ver la siguiente salida:

root         609  0.0  0.1  12160  7268 ?        Ss   Apr29   0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root       35532  0.0  0.2  13864  8796 ?        Ss   02:37   0:00 sshd: root@pts/0
root       35669  0.0  0.2  13860  8916 ?        Ss   02:38   0:00 sshd: root@pts/1

Encontrar la conexión SSH activa con el comando netstat

Netstat es una herramienta de línea de comandos que puede utilizarse para mostrar las conexiones SSH activas o establecidas desde los hosts remotos a tu servidor.

Puedes ejecutar el comando netstat como se muestra a continuación:

netstat -tnpa | grep 'ESTABLISHED.*sshd'

Deberías ver la siguiente salida:

tcp        0     88 45.58.38.21:22          27.61.161.61:8363       ESTABLISHED 35532/sshd: root@pt 
tcp        0      0 45.58.38.21:22          45.58.38.21:51166       ESTABLISHED 35669/sshd: root@pt 

Encontrar la conexión SSH activa con el último comando

El comando last se utiliza para mostrar la lista de todos los usuarios que se han conectado y desconectado desde que se creó el archivo /var/log/wtmp. Con el comando last también puedes encontrar la información de la conexión SSH activa entre el cliente y el servidor.

Ejecuta el siguiente comando para encontrar las conexiones SSH activas en tu servidor.

last -a | grep -i still

Deberías ver la siguiente salida:

root     pts/1        Fri May  1 02:39   still logged in    45.58.38.21
root     pts/0        Fri May  1 02:37   still logged in    27.61.161.61
reboot   system boot  Wed Apr 29 08:04   still running      5.4.0-26-generic

Encontrar la conexión SSH activa con el comando ss

ss es muy similar a netstat y se utiliza para mostrar más información que otras herramientas. Puedes utilizar el comando ss con grep para listar la conexión SSH activa en tu servidor.

Ejecuta el comando ss con grep como se muestra a continuación:

ss | grep -i ssh

Deberías ver la siguiente salida:

tcp   ESTAB  0      0                      45.58.38.21:51166        45.58.38.21:ssh                                                                             
tcp   ESTAB  0      56                     45.58.38.21:ssh         27.61.161.61:8363                                                                            
tcp   ESTAB  0      0                      45.58.38.21:ssh          45.58.38.21:51166                                                                           

Como puedes ver, hay dos conexiones activas desde la IP del cliente 45.58.38.21 y 27.61.161.61.

Conclusión

En la guía anterior, hemos aprendido a encontrar conexiones SSH activas con diferentes métodos. Ahora puedes controlar fácilmente quién está conectado a tu servidor.

También te podría gustar...