在Linux服务器上,如何找到所有当前SSH连接的列表,或者断开特定的SSH连接?
发布于 2011-02-15 17:54:10
如果您计划进行交互操作,最简单的方法就是调用who并查看是否有来自远程主机的用户。
[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)这当然不是万无一失的,但非常容易按需打字,而且很容易用人眼处理。
正如@gravyface所指出的,如果您包含一个-u选项,who也会打印出相关的PID,然后您可以将该PID传递给kill以终止连接。
发布于 2011-02-15 18:35:43
使用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)然后,您应该能够关闭违规连接(例如,断开user2):
# kill -9 3330发布于 2011-02-15 17:38:56
要查看ssh连接,可以执行netstat -atn | grep ':22'。它显示了端口22上的所有连接。
要删除连接,可以尝试使用ps-ax查找sshd (Sshd)的PID。
编辑:我认为您可以找到他们的bash会话的PID (或等效的shell)。杀了他们就好了。
另一个资源:这条线有一些关于这个主题的提示。
https://serverfault.com/questions/235831
复制相似问题