如何在 Linux 中显示所有活动的 SSH 连接

SSH 是一种流行且有效的协议,它允许您从本地计算机登录和管理远程主机。 本指南将引导您完成可用于检查远程主机上的活动 SSH 连接的各种命令。

笔记: 根据系统配置,我们将要讨论的某些命令可能需要您拥有 root 权限或 sudo 特权。

1. 使用 WHO 命令

您可以用来显示活动 SSH 连接的第一个命令是 who 命令。

who 命令用于显示当前登录系统的人员。 它允许我们查看连接的用户和源 IP 地址。

要使用 who 命令,只需输入 who 没有任何参数。

在上面的输出中,您可以看到一个通过 tty 连接的 debian 用户和来自远程 IP 地址的两个 SSH 会话。

您还可以将参数添加到 who 命令显示详细信息。

为了 example要显示已连接用户的上次启动,请添加 -b -u 旗帜:

谁BU

who 命令提供了更多选项来获得自定义结果。 查看手册页以了解更多信息。

2. 使用 W 命令

可以用来显示各种 SSH 会话状态和连接到服务器的用户的下一个命令是 w 命令。 不像 who 指挥部 w 命令为您提供有关每个用户正在运行的进程的更多信息。

此外, w 命令将为您提供有关空闲 SSH 连接的信息,这在您需要终止它们时非常有用。

如果您在没有任何其他选项的情况下运行该命令,您应该会得到类似于下面的输出。

W 命令

在上述 example, 这 w 命令提供详细信息,例如用户名、TTY 方法、源 IP 地址、登录时间、空闲时间等。

who 命令,你也可以使用 w 带有各种参数的命令。 下表显示了您可以使用的各种参数 w 命令。

范围它能做什么
-h,–无标题通知终端不要打印标题
-u,–无电流提示终端忽略用户名,因为它显示已连接用户的进程和 CPU 时间
-s,-短告诉终端打印一个缩短的输出——不包括登录时间、JCPU 和 PCPU
-f,-从启用/禁用打印输出的 FROM 选项
-帮助显示各种 w 命令选项/参数并退出
-v,–版本显示版本信息并退出
用户将结果缩小到指定用户

这 example 下面显示了 w-s-f 参数以显示当前 SSH 会话的删节输出,其中 FROM 部分被截断。

谁顺丰

虽然很少使用,但您也可以使用 w 带有环境和文件参数的命令。 要了解有关这些参数的更多信息, 考虑手册页。

3. 使用最后一条命令

您还可以使用 last 命令显示所有连接的 SSH 会话。 最后一个命令显示最后登录用户的列表。

它通过检查指定的文件来工作。 为了 example, “/var/log/wtmp” 显示自文件创建以来登录和注销的所有用户。 该命令还为您提供有关在客户端和服务器之间创建的 SSH 会话的信息。

最后一个命令的一般语法是:

这是一个 example.

最后的命令

由于最后一个命令的输出很大,我们可以使用 grep 命令仅显示活动会话。

为了 example:

最后的 Grep 仍然

您还可以修改最后一个命令的输出以显示详细信息。

为了 example,要显示完整的用户名和域,我们可以使用 -w 旗帜。

最后一个命令支持许多选项。 这是最后一个命令最常用的选项。

范围它能做什么
-a, –hostlast在最后一列显示主机名
-d, –dnsLinux 存储所有远程主机的主机名和 IP 地址。 此参数将 IP 转换为主机名
-文件,-文件通知最后一个命令使用 /var/log/wtmp 以外的指定文件
-F,-全职提示最后打印所有登录和注销日期和时间
-i, –ip类似于–dns,除了显示主机的主机名而不是显示IP号

4. 使用 netstat 命令

我们不能忘记 netstat 命令。 Netstat 用于显示所有网络连接、网络接口、路由表等。

您还可以使用 netstat 命令过滤 Linux 服务器上已建立或已连接的 SSH 会话:

Netstat Grep SSH

上述命令仅显示已建立的 SSH 连接。

要显示所有连接,包括监听和非监听,我们可以使用 -a 标记为:

Netstat A Grep SSH

5. 使用 ss 命令

如果您想了解有关已连接 SSH 会话的更多信息,可以使用 ss 命令,显示套接字数据,使其类似于 netstat.

为了 example,我们可以 grep 的输出 ss 命令与 -a 选项(全部)显示所有连接的 SSH 会话。 其语法是:

ss grep ssh

上面的输出显示了远程主机上的所有 SSH 连接。 这将包括 SSHD 守护程序。

要过滤已建立的 SSH 连接,您可以通过管道将输出返回到 grep。

SS双Grep

上面的命令只会返回活动的 SSH 连接。

ss 命令还有大量其他选项,您可以使用它来了解有关活动服务器连接的各种信息。 为了 example你可以使用 -e 标志以显示有关套接字信息的更多信息。

总结

持续监控远程主机是否有未经授权的 SSH 登录并采取必要的措施是一种很好的做法,例如保护您的服务器或禁用密码身份验证。 同时,您还可以使用反向 SSH 隧道来允许外部连接到您的 PC。

订阅我们的新闻!

我们最新的教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅