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

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

它在哪里定义,在一个易于编辑的shell脚本中,或closures二进制?


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

看起来打印的行格式被编译成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

我看不到任何更改的configuration选项,所以您将需要编辑源代码并重新编译。

编辑 :在极限情况下,你可以在http://www.openssh.orgfind源代码。 但是您不要告诉我们您正在使用OpenSSH,或者您的平台,所以很难更具体。 如果它是一个Linux系统,你可以更好地按照通常的方式获得适合你的发行版的源代码,并通过发行版特定的机制重新编译。

但是,实际上,除非你有一个非常引人注目的商业理由,否则你不应该这样做:你正在为自己做一个维护的噩梦 ,去一个手动编译版本的安全敏感软件包。

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

这似乎不太可能会find方法来轻松地更改这些信息,毕竟这是用户安全性的一部分。


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