If you're planning to do this interactively, the simplest would be to simply invoke who and see if there are any users from a remote host.

[you@host]$ who
user1      :0           Feb  8 09:45
user1      pts/1        Feb 14 17:56 (:0.0)
malcolm    pts/3        Feb 15 17:50 (cockpit.serenity.com)
reynold    pts/2        Feb 15 17:48 (host123.firefly.co.uk)

This is of course not foolproof, but is extremely simple to type up on demand and easily process with the human eye.

As @gravyface pointed out, if you include a -u option who will also print out the associated PID which you can then pass to kill to terminate a connection.


How about using lsof?

# lsof -i |grep ":ssh"

sshd    1943      root    3u  IPv6   5698       TCP *:ssh (LISTEN)
sshd    1943      root    4u  IPv4   5700       TCP *:ssh (LISTEN)
sshd    3217      root    3r  IPv4   9687       TCP www.example.com:ssh->192.168.61.11:7341 (ESTABLISHED)
sshd    3220      user1   3u  IPv4   9687       TCP www.example.com:ssh->192.168.61.11:7341 (ESTABLISHED)
sshd    3327      root    3r  IPv4  10595       TCP www.example.com:ssh->192.168.61.11:7385 (ESTABLISHED)
sshd    3330      user2   3u  IPv4  10595       TCP www.example.com:ssh->192.168.61.11:7385 (ESTABLISHED)

You should then be able to kill the offending connection (e.g., to disconnect user2):

# kill -9 3330

To view the ssh connections you can do a netstat -atn | grep ':22'. It shows all connections on port 22.

To drop the connection, you can try finding the PID of the sshd (SSH Daemon) with ps-ax.

Edit: I think you can find the PID of their bash session (or equivalent shell). Killing that should drop them alright.

Another resource: this thread has some tips on the subject.