当我运行它时,Linux 是如何运行的?
ssh root@server 'last | head'
当我运行多个此命令时,我看到以下输出:
root pts/0 MyIPv4 Fri Dec 30 16:17 - 16:17 (00:00)
reboot system boot 5.15.0-56-generi Fri Dec 30 01:03 still running
get pts/1 MyIPv4 Thu Dec 29 10:05 - 10:11 (00:05)
get pts/1 MyIPv4 Thu Dec 29 08:31 - 09:20 (00:48)
root pts/1 MyIPv4 Wed Dec 28 13:12 - 13:34 (00:21)
root pts/1 MyIPv4 Tue Dec 27 21:56 - 21:56 (00:00)
root pts/3 tmux(3176049).%1 Tue Dec 27 09:27 - 09:28 (00:01)
root pts/2 tmux(3176049).%0 Tue Dec 27 09:26 - 09:28 (00:02)
root pts/1 MyIPv4 Tue Dec 27 09:26 - 09:28 (00:02)
root pts/1 MyIPv4 Mon Dec 26 20:33 - 20:35 (00:01)
有没有办法查看是否有像上面这样的命令登录?
我也检查了这个但没有结果:
ssh root@server 'history'
ssh root@server 'history | tail'
通常使用的 wtmp 日志用于
last
记录交互式登录,即具有与之关联的终端 (tty) 的登录。(同样, utmp 文件who
仅列出当前活动的终端会话,而不是其他登录类型。)ssh host
or将分配一个ssh -t host cmd
终端并将显示在who
(utmp) 或last
(wtmp) 中,但ssh host cmd
orssh -T host
不会。换句话说,wtmp 不是身份验证日志或安全审计日志。如果您想要所有身份验证的准确记录,请使用在 /var/log/auth.log(或类似文件)中找到的 PAM 日志。
在使用 systemd 的服务器上,
loginctl
可能会有更准确的会话列表。- SSH 手册页
即命令在用户未登录的情况下运行。这就是您的方法不起作用的原因。
但是,默认情况下,SSH 会记录所有连接(和连接尝试)。只需
journalctl -u ssh.service
在服务器上运行以检查何时 smb. (试图)连接到服务器。