我如何跟踪谁通过 SSH 访问我的 Linux 机器?

我如何跟踪谁通过 SSH 访问我的 Linux 机器?

我运行的是 Ubuntu 10.04。有没有一种方法可以让我获得每日报告,了解谁登录了该盒子、什么时间,甚至 - 这可能要求太多 - 他们使用的命令的报告?这是一个低使用率的盒子,所以我认为这将是查看其上发生的活动的好方法。

同样,我听说无法通过非交互式 shell(例如 rsync 或仅通过 ssh 远程执行单个命令)跟踪盒子上的操作何时完成。这是真的吗,还是有办法记录和跟踪这一点?

答案1

谁登录的信息可以在/var/log/auth.log(或其他发行版上的其他日志文件)中找到。有多个日志监控程序可以提取您配置的相关信息。在任何健全的系统上,每个用户身份验证都会被记录。

要记录每个命令调用(但不记录其参数),请使用流程会计,由提供acct包裹 安装帐户在Ubuntu上。如果会计子系统已启动并运行,则lastcomm显示有关已完成流程的信息。

答案2

您还可以使用whow查看当前登录系统的用户,包括 SSH 用户。

答案3

您也可以尝试在控制台中输入命令last,控制台会显示所有最近的登录信息,包括登录的用户名(但不会记录登录后是否更改了用户名)、IP、日期和持续时间。登录时间。

@jasonwryan 在此处的评论中提到了此命令。

答案4

这些2命令给出相同的结果,我经常使用它们来检查谁登录了。

注意:22.22.22.22登录了4次,仍然存在。

last




root     pts/0        22.22.22.22    Fri Apr 23 08:36   still logged in
root     pts/0        22.22.22.22    Fri Apr 23 08:29 - 08:36  (00:06)
root     pts/0        22.22.22.22    Fri Apr 23 08:27 - 08:29  (00:02)
root     pts/0        22.22.22.22    Fri Apr 23 08:25 - 08:27  (00:01)
root     pts/0        22.22.22.22    Thu Apr 15 11:51 - 12:00  (00:09)
reboot   system boot  5.4.0-51-generic Thu Apr 15 11:50   still running

wtmp begins Thu Apr 15 11:50:06 2021

===========

grep -E "Accepted publickey" /var/log/auth.log




Apr 23 12:25:50 server sshd[59026]: Accepted publickey for root from 22.22.22.22 port 62685 ssh2: RSA SHA256:12
Apr 23 12:27:41 server sshd[59165]: Accepted publickey for root from 22.22.22.22 port 63240 ssh2: RSA SHA256:12
Apr 23 12:29:52 server sshd[60083]: Accepted publickey for root from 22.22.22.22 port 63860 ssh2: RSA SHA256:12
Apr 23 08:36:27 server sshd[63873]: Accepted publickey for root from 22.22.22.22 port 49318 ssh2: RSA SHA256:12

相关内容