使用“PrintMotd no”打印两次 MOTD

使用“PrintMotd no”打印两次 MOTD

我查看了这里的其他帖子,但似乎都没有帮助。无论我在目录中设置PrintMotd为“否”还是“是”, 只要我有一个“motd”文件,它就会被打印两次。etc/ssh/sshd_configetc/

是否有其他文件在某处被弄乱了,我需要编辑它?

答案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_configMOTD 选项设置为PrintMotd=no(不删除 # 并设置为 no 来替换默认值)并启用/etc/pam.d/sshdmotd 行,因此该/etc/ssh/sshd_config选项printlastlog=yes将在显示 pam.d motd 后打印最后的登录信息。

Pam 还将使用中的选项/etc/update-motd.d/来定制,/etc/motd而 sshd 不会这样做,因为它只会显示已经存在的内容。

答案2

作为修复,我注释掉了位于 下的session optional pam_motd.so文件。sshdetc/pam.d

如果有更合适的解决方案来替代我的解决方案,也请发布。

答案3

正如@Leb指出的那样,还有一个pam_motd.so用于打印/etc/motd文件的条目,因此您应该选择其中一个sshd通过选项来打印它PrintMotd yes或者使用pam_motd

由于pam_motd在 Ubuntu 上默认用于消息的动态和静态块,你最好通过设置来禁用消息sshd的额外打印PrintMotd no/etc/ssh/sshd_config

相关内容