Join my Bash scripting course on Udemy 👀

List active SSH sessions via the command-line in Linux

April 22, 2021  ‐ 1 min read

Your best bet to show the active SSH sessions on a system is probably to combine the netstat command with grep. The netstat command is used to show statistics on network connections, not just limited to SSH. The netstat command does require root privileges.

By piping the output of netstat to grep you can filter connections properly to just list active SSH sessions. The command looks as follows:

$ sudo netstat -tnpa | grep 'ESTABLISHED.*sshd'

More generally, you can use the commands users, who and w to list the currently logged in users on the system. Each displaying a different level of details.

The users commands just displays a list of usernames separated by spaces.

$ users
koen

The who command

$ who
koen     pts/0        Apr 18 16:28 (80.113.224.189)

The w command

$ w
16:28:47 up 21 days,  5:05,  1 user,  load average: 0.30, 0.13, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
koen     pts/0    80.113.224.189   16:28    7.00s  0.19s  0.01s w