如何确定登录Root的IP地址?

如何确定登录Root的IP地址?

有几个人对我负责的特定虚拟机具有 root 访问权限。我想知道使用哪个IP地址登录root。

答案1

您可以使用last命令来获取这些信息

# last|head
phemmer  ssh          192.168.0.24     Wed Aug 20 21:08 - 21:08  (00:00)
phemmer  pts/13       192.168.0.2      Wed Aug 20 14:00 - 18:43  (04:43)
phemmer  ssh          192.168.0.2      Wed Aug 20 14:00 - 18:43  (04:43)
phemmer  ssh          ::1              Wed Aug 13 23:08 - 23:08  (00:00)
phemmer  ssh          ::1              Wed Aug 13 23:08 - 23:08  (00:00)
phemmer  ssh          ::1              Wed Aug 13 23:07 - 23:07  (00:00)
phemmer  pts/15       192.168.0.20     Thu Aug  7 19:00 - 19:00  (00:00)
phemmer  ssh          192.168.0.20     Thu Aug  7 19:00 - 19:00  (00:00)
phemmer  :0                            Wed Jul 30 20:06   still logged in
reboot   system boot  3.13.2-gentoo    Wed Jul 30 20:05   still running

毫无疑问,第三列将显示 SSH 登录时的远程 IP 地址。

last使用该/var/log/wtmp文件,因此此方法类似于 G-Man 的答案(只是更简单一点,因为您不必指定文件的路径)。

答案2

这取决于您的发行版或操作系统。sshd将在某处记录每次登录,并在登录中包含相关的 IP 地址,格式如下:

Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297

这部分是一致的,但到达那里的方式可能会有所不同。基于系统systemd, 使用journalctl

journalctl /usr/bin/sshd

列出sshd可执行文件中的所有日志消息。您可以通过 grep 找出 root 登录或其他条件,并使用--since和按日期限制它--until(请参阅 参考资料man journalctl)。

或者,从历史上看,消息将(通常)记录到/var/log.通常sshd消息会进入/var/log/auth.log,但具体的文件可能会有很大差异。无论是哪一个:

grep sshd /var/log/auth.log

将为您提供与该journalctl版本大致相同的输出。

答案3

命令

who /var/log/wtmp

应该显示像所who显示的信息,但要回到过去。

答案4

从您提供的简短描述来看,如果您建立一个日志监控系统似乎会更好。它将帮助您监控登录、创建警报、比较几天的数据,当然还有图表。

但如果你需要监控它暂时地,您可以使用last命令。

last | grep root | grep -v tty | awk '{print $3}'

这将为您提供 root 用户登录的列表IPsHostnames从何处登录。

相关内容