我查看了这里的其他帖子,但似乎都没有帮助。无论我在目录中设置PrintMotd
为“否”还是“是”, 只要我有一个“motd”文件,它就会被打印两次。etc/ssh/
sshd_config
etc/
是否有其他文件在某处被弄乱了,我需要编辑它?
答案1
对我来说,有两个地方导致 mod 显示两次:
1)pam.d & 2)sshd 本身
要开始修复它:
~> cd /etc/pam.d/ ~> grep -i motd *
然后编辑 /etc/pam.d/sshd(可能因版本而异,因此请使用 grep 输出进行确认)并散列以下两行:
session optional pam_motd.so motd=/run/motd.dynamic session optional pam_motd.so noupdate
我的/etc/ssh/sshd_config
也有#PrintMotd=yes
(默认为是,所以即使它被#掉了也是活跃的)
最后我将/etc/ssh/sshd_config
MOTD 选项设置为PrintMotd=no
(不删除 # 并设置为 no 来替换默认值)并启用/etc/pam.d/sshd
motd 行,因此该/etc/ssh/sshd_config
选项printlastlog=yes
将在显示 pam.d motd 后打印最后的登录信息。
Pam 还将使用中的选项/etc/update-motd.d/
来定制,/etc/motd
而 sshd 不会这样做,因为它只会显示已经存在的内容。
答案2
作为修复,我注释掉了位于 下的session optional pam_motd.so
文件。sshd
etc/pam.d
如果有更合适的解决方案来替代我的解决方案,也请发布。
答案3
正如@Leb指出的那样,还有一个pam_motd.so
用于打印/etc/motd
文件的条目,因此您应该选择其中一个sshd
通过选项来打印它PrintMotd yes
,或者使用pam_motd
。
由于pam_motd
在 Ubuntu 上默认用于消息的动态和静态块,你最好通过设置来禁用消息sshd
的额外打印PrintMotd no
/etc/ssh/sshd_config
。