如何检查 root 用户是否已成功 ssh 进入我的服务器?

如何检查 root 用户是否已成功 ssh 进入我的服务器?

以下代码给出了所有已接受但未按用户名过滤掉的内容

sudo cat /var/log/auth.log | grep Accepted

答案1

将用户名添加到 grep 模式中?

# grep -e "Accepted .* for root " /var/log/auth.log
May  3 23:09:01 lumi sshd[21046]: Accepted publickey for root from 1.2.3.4 port 44308 ssh2
May  6 21:25:20 lumi sshd[6642]: Accepted publickey for root from 1.2.3.4 port 44556 ssh2

或者使用last,它读取/var/log/wtmp,其中包含已启动会话的日志。请注意,非交互式会话不存储在这里。

# last root
root     pts/38       somehost.somewhere  Sat May  6 21:25   still logged in   
root     pts/3        somehost.somewhere  Wed May  3 23:09 - 23:09  (00:00)  

至少这些日志的位置可能是特定于系统/发行版的。


但是,由于我们正在讨论 root 登录,因此最好注意任何具有 root 权限的人都可以编辑日志以隐藏其登录,因此,如果您这样做是为了审核,那么您必须记录到外部系统。

答案2

也许最后一个命令可以帮助您列出 root 登录名?在此示例中,最后一个命令显示 root 在 1 月 11 日星期三使用伪终端 3 (pts/3) 从 IP 地址 10.1.57.1​​40 的计算机登录。虽然最后一个命令没有明确说明 SSH,但 pts/3 可能是强烈表明连接是使用 SSH 建立的。

[root@server1 ~]# last
john.doe  pts/0        server1.example.com  Thu Jan 12 12:04  still logged in
root      pts/3        10.1.57.140          Wed Jan 11 12:54 - 13:13  (00:19)
reboot    system boot  3-10-0-327.e17.x     Wed Jan 11 12:52 - 13:10  (00:01)
. . .

相关内容