有几个人对我负责的特定虚拟机具有 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 用户登录的列表IPs
或Hostnames
从何处登录。