如何编辑 SSH“上次登录”消息?

IQA*_*eas 18 ssh motd

我想编辑Last login:与当天消息一起打印出来的信息,但我找不到生成和回显的脚本。

它在哪里定义,在易于编辑的 shell 脚本中,还是在二进制文件中关闭?


请注意,这与ServerFault不同:如何在 ssh 启动时编辑欢迎消息?. “上次登录”信息不是从内部打印出来的/etc/update-motd.d/,而是通过设置PrintLastLog标志来定义的,因此不能像当天消息的其他部分一样进行编辑。

Mad*_*ter 16

看起来打印行的格式被编译成sshd

[me@risby ~]$ ssh lory
Last login: Fri May 23 10:59:01 2014 from 2a01:2c0:e:300:7271:bcff:feac:445a
[me@lory ~]$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s

我也看不到任何更改它的配置选项,因此您需要编辑源代码并重新编译。

编辑:在极限情况下,您可以在http://www.openssh.org 上找到源代码。但是您没有告诉我们您正在使用 OpenSSH 或任何有关您的平台的信息,因此很难更具体。如果它是一个 Linux 系统,你会做得更好,以通常的方式获得适合你的发行版的源代码,并通过你的发行版特定机制重新编译。

但实际上,您根本不应该这样做除非您有一个非常令人信服的商业理由这样做:您正在为自己做一个维护噩梦,转而使用安全敏感包的手工编译版本。

  • “上次登录”消息是用户特定的,而 *motd* 是系统范围的。我不确定您想如何重新创建消息。此外,有些人实际阅读了此消息,并希望它尽可能准确。 (3认同)

use*_*517 6

最后登录信息存储在/var/log/wtmp/var/log/utmp它们是二进制文件。如果不查看 sshd 的源代码,我不能完全确定,但我希望它使用合适的系统调用从这些文件中检索信息

您似乎不太可能找到一种方法来轻松更改此信息,毕竟这是用户安全的一部分。


如果你真的想要血腥的细节,那么你需要查看函数的源代码login_get_lastlog,可以在loginrec.c