如何从 Debian 12 禁用 MOTD?

如何从 Debian 12 禁用 MOTD?

我想在我的 Debian 12 系统上禁用 MOTD。我更新了 sshd_config 文件以不显示 MOTD,但它仍然显示。它是否可能来自另一个模块?我该如何禁用它?

我使用 shell 脚本在 Vultr 中部署服务器。我需要能够在 shell 脚本中调用命令来禁用 MOTD,这样我就不必进入服务器为每个新服务器进行此更改。

答案1

为了禁用(或以其他方式管理)MOTD 的输出,通常需要考虑三个地方。

  1. SSH 服务器配置/etc/ssh/sshd_config。文档写道,

    PrintMotd指定sshd(8)/etc/motd在用户交互登录时是否打印。(在某些系统上,它也由 shell、/etc/profile或同等程序打印。)默认值为yes

    所以

    PrintMotd no
    

    在我的安装(Debian 12)中,这已经设置为no,所以它显然不是消息输出的来源。

  2. PAM。/etc/pam.d/sshd我们可以看到

    # Print the message of the day upon successful login.
    # This includes a dynamically generated part from /run/motd.dynamic
    # and a static (admin-editable) part from /etc/motd.
    session    optional     pam_motd.so  motd=/run/motd.dynamic
    session    optional     pam_motd.so noupdate
    

    打开 root shell(sudo -s或其他)。不要依赖使用sudo作为前缀来编辑和更改文件。打开 root shell。真的。保存该文件的副本,然后注释掉这两session行以禁用 MOTD。重新启动 sshd ( systemctl restart sshd) 并测试您是否仍可以登录。如果出现问题,请使用仍处于打开状态的 root shell 恢复更改并重新测试。

  3. Shell。检查/etc/profile/etc/bash.basrc和其他 shell 初始化脚本,以确保没有显示 MOTD。(不太可能,但我们会检查。)

    grep -ril motd /etc/zsh /etc/bash.bashrc /etc/profile /etc/profile.d
    

    您可以放心地忽略任何“没有这样的文件或目录“错误。在我的系统上没有找到匹配的文件。

相关内容