如何在Linux上列出所有连接的SSH会话
介绍
安全外壳(SSH)是一个常用的协议,用于安全远程访问Linux服务器。当多个用户通过SSH连接到一个Linux服务器时,为管理或监控目的列出所有连接的SSH会话可能很有用。在这篇文章中,我们将讨论如何使用各种命令行工具列出Linux上所有连接的SSH会话。
用who命令连接的SSH会话的列表
who命令是一个简单而广泛使用的命令行工具,用于列出Linux系统上的登录用户。要列出所有连接的SSH会话,你可以使用 “who -a “命令。-a选项显示所有用户,包括那些没有通过系统控制台登录的用户。结果将显示你的用户名、终端、以及登录日期和时间。
$ who -a
root pts/0 2020-12-19 14:20 (10.0.0.1)
user1 pts/1 2020-12-19 15:25 (10.0.0.2)
user2 pts/2 2020-12-19 14:30 (10.0.0.3)
在这个例子中,输出显示,目前有三个用户连接。”root”、”user1 “和 “user2″,以及他们连接的终端和他们连接的IP地址。
用w命令连接的SSH会话的列表
另一个可以用来列出连接的SSH会话的命令行工具是 “w”。这个命令显示当前登录到系统的用户的信息,同时也显示每个用户正在运行的进程。要列出所有连接的SSH会话,你可以使用 “w -h “命令,它省略了标题,只显示进程。
$ w -h
root pts/0 14:20 2.00s 0.00s ssh 10.0.0.1
user1 pts/1 14:25 1.00s 0.00s ssh 10.0.0.2
user2 pts/2 14:30 1.00s 0.00s ssh 10.0.0.3
在这个例子中,输出显示三个用户目前正在连接,他们所连接的终端,以及他们所连接的IP地址。
用最后一条命令连接的SSH会话的列表
最后一条命令是用来显示最近登录过系统的用户。这个命令也可以用来列出使用最新的”-i “命令连接的SSH会话。
$ last -i
root pts/0 10.0.0.1 Sun Dec 19 14:20 - 14:25 (00:05)
user1 pts/1 10.0.0.2 Sun Dec 19 14:25 - 14:30 (00:05)
user2 pts/2 10.0.0.3 Sun Dec 19 14:30 - 14:35 (00:05)
在这个例子中,输出显示了当前连接的三个用户,他们连接的端点,他们连接的IP地址,以及他们会话的长度。
用who -u命令连接的SSH会话的列表
你也可以使用 “who -u “命令来列出所有连接的SSH会话。该命令显示用户、终端和登录日期和时间。
$ who -u
root pts/0 2020-12-19 14:20 (10.0.0.1)
user1 pts/1 2020-12-19 14:25 (10.0.0.2)
user2 pts/2 2020-12-19 14:30 (10.0.0.3)
“-u “选项显示用户和他们的空闲时间,但不显示IP地址。因此,如果IP信息对你很重要,你可以把这个命令和”-i “选项结合起来,后者将显示IP地址。
$ who -u -i
root pts/0 2020-12-19 14:20 (10.0.0.1) . . . . . . . . . . . . . . .
user1 pts/1 2020-12-19 14:25 (10.0.0.2) . . . . . . . . . . . . . . .
user2 pts/2 2020-12-19 14:30 (10.0.0.3) . . . . . . . . . . . . . . .
用ss命令连接的SSH会话的列表
另一个可以用来列出连接的SSH会话的命令是ss。这个命令类似于netstat,但效率更高,用于转储套接字统计数据。要列出所有连接的SSH会话,你可以使用 “ss -t -a “命令。
$ ss -t -a | grep ssh
tcp ESTAB 0 0 10.0.0.1:ssh 10.0.0.1:46754 users:(("sshd",pid=9987,fd=3))
tcp ESTAB 0 0 10.0.0.2:ssh 10.0.0.2:47754 users:(("sshd",pid=9987,fd=3))
tcp ESTAB 0 0 10.0.0.3:ssh 10.0.0.3:48754 users:(("sshd",pid=9987,fd=3))
-t “选项只显示TCP连接,”-a “选项显示所有套接字。grep命令用来过滤输出,只显示ssh连接。
结论
在这篇文章中,我们已经讨论了几个命令行工具,用于列出Linux上连接的SSH会话。每个命令都有其特定的选项和输出格式,所以你要选择一个最适合你需要的命令。在使用每个命令之前,建议先查阅其手册,以确保你使用了正确的选项并得到了预期的结果。