首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理SSH连接

管理SSH连接
EN

Server Fault用户
提问于 2011-02-15 17:32:55
回答 4查看 12.3K关注 0票数 9

在Linux服务器上,如何找到所有当前SSH连接的列表,或者断开特定的SSH连接?

EN

回答 4

Server Fault用户

回答已采纳

发布于 2011-02-15 17:54:10

如果您计划进行交互操作,最简单的方法就是调用who并查看是否有来自远程主机的用户。

代码语言:javascript
复制
[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以终止连接。

票数 14
EN

Server Fault用户

发布于 2011-02-15 18:35:43

使用lsof怎么样?

代码语言:javascript
复制
# 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):

代码语言:javascript
复制
# kill -9 3330
票数 8
EN

Server Fault用户

发布于 2011-02-15 17:38:56

要查看ssh连接,可以执行netstat -atn | grep ':22'。它显示了端口22上的所有连接。

要删除连接,可以尝试使用ps-ax查找sshd (Sshd)的PID。

编辑:我认为您可以找到他们的bash会话的PID (或等效的shell)。杀了他们就好了。

另一个资源:这条线有一些关于这个主题的提示。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/235831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档