我在 Linux 上拥有 root 权限。我从外部登录但忘记断开连接。如何通过 ssh 找到并断开与 Linux 的连接?
答案1
# netstat -atpn | grep ssh
tcp 0 0 192.168.1.X:22 192.168.1.Y:43381 ESTABLISHED 1772/sshd
在我的例子中,1772
是 SSH shell 进程的 PID。您需要找出它是哪一个(可能从源 IP 地址中推断出来,在我的例子中是192.168.1.Y
)。
一旦你弄清楚了,只需杀死它:
# kill -9 1772
你应该如果您有一段时间没有看管 root 密码,请更改它,以防万一。
答案2
使用 w 可以查看系统上的当前用户,包括他们的用户名和他们来自哪里(就 SSH 而言是 IP 地址)。然后,您可以使用 IP 地址通过 netstat 进行过滤:
[root@server ~] # w
23:25:40 up 6 days, 16:41, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
joakim pts/0 22.231.113.64 Mon22 2days 0.00s 0.00s -bash
[root@server ~] # netstat -natp | grep 22.231.113.64
tcp 0 0 194.66.82.11:22 22.231.113.64:57235 ESTABLISHED 8435/sshd
[root@server ~] # kill -9 8435