How to Kill Inactive SSH Sessions

So, you’ve been disconnected from your server a couple of times, resulting in inactive ssh sessions. You know this because when you use the “w” command, you see something like the following…

22:47:28 up 315 days, 21:09, 2 users, load average: 9.04, 8.17, 7.30
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 ipxxx-xxx-xxx-xxx 23:54 26:40 9.26s 0.86s -bash
root pts/1 ipxxx-xxx-xxx-xxx 22:44 0.00s 0.00s 0.00s w

 

Using pstree to identify idle SSH sessions

There are a few ways to kill idle ssh sessions. Including editing your sshd_config. But here’s an easy after-the-fact method:

Run this command:

pstree -p

the output will look something like this:

├─sshd(3102)─┬─sshd(3649)───bash(3656)
│            └─sshd(16680)───bash(16687)───pstree(17073)

Now look for the session’s parent PID from the line without the “pstree” command. The line including “pstree” would be your session! :)

To kill the idle ssh session, type:

kill 3649

Replace 3649 with your idle ssh session PID. Check afterward with the “w” command.

Now to prevent this from happening in the future, lets edit /etc/ssh/sshd_config and add these two config lines:

ClientAliveInterval 600
ClientAliveCountMax 3

 

Using htop to identify idle SSH sessions

Another method for identifying idle (orphaned ssh sessions) is by using htop. Notice below the inactive ssh session with the ‘top’ command left running. Also, see htop: Quick Guide & Customization, 90 frequently used Linux Commands, and top, atop, others.

htop pid check

 

Published: December 9th, 2013
Last updated: October 18th, 2021

Tags: , , , ,



Top ↑