我最近全新安装了 Ubuntu 14.04。当我使用 SSH 时,没有 MOTD(是的,我在 sshd_config 中设置了相应的命令)。
我阅读了大量有关设置 MOTD 的教程,但我意识到虽然我有 /etc/update-motd.d,但没有 /etc/motd 文件也没有 /var/run/motd 文件。
我该如何设置这些以便可以通过 SSH 获取 MOTD?
答案1
在 Ubuntu 14.04.2 LTS 的基础安装中,只需输入您想要的消息:
/etc/motd
默认情况下,MOTD 将出现在其他动态 MOTD 内容的末尾。例如,这是添加了 /etc/motd 文件的 Vagrant ubuntu/trusty64 (v20150506.0.0) 框的输出:
$ vagrant ssh
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-52-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Thu May 14 20:06:56 UTC 2015
System load: 0.39 Processes: 78
Usage of /: 2.8% of 39.34GB Users logged in: 0
Memory usage: 24% IP address for eth0: 10.0.2.15
Swap usage: 0%
Graph this data and manage this system at:
https://landscape.canonical.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
#####################################
Howdy! This message is from /etc/motd
#####################################
Last login: Thu May 14 20:06:56 2015 from 10.0.2.2
vagrant@vagrant-ubuntu-trusty-64:~$
如果您在具有默认设置的系统上工作,那么这就是全部内容了。
其他一些故障排除说明:
使用“/etc/motd”与早期版本不同。12.02 版建议使用“/etc/motd.tail”。但在 14.04.2 版中,该功能无效。
我看到的其他建议包括更改“/etc/ssh/sshd_config”中的某些值。如果这些值已被更改,以下是有效的默认值:
UsePAM yes PrintMotd no
/etc/pam.d/login
同样,以下是我所见过的引用的默认值:session optional pam_motd.so motd=/run/motd.dynamic noupdate session optional pam_motd.so
这就是我所见过的有关故障排除的全部参考资料。
答案2
尝试添加:
UsePAM yes
在您的/etc/ssh/sshd_config
建议中漏洞以及无法在 Ubuntu 10.04 Server 中正确配置 MOTD(未找到 update-motd 命令)
启用 UsePAM 后,PAM 将自动更新 MOTD 并在您登录时为您打印。您必须禁用 PrintMOTD,否则 SSH 也会打印它,所以您会看到它两次,这很烦人。
我对此不太确定,但万一您收到两次 motd,则应将其设置PrintMOTD
为 no。
答案3
添加以下行到/etc/pam.d/sshd
:
session optional pam_motd.so motd=/run/motd.dynamic noupdate
答案4
就我而言,这是因为其中一个脚本/etc/update-motd.d
运行失败(给出非零退出代码)。修复它后,MOTD 再次出现。
exit 0
如果您不确定是哪一个,只需在该目录中的所有脚本中添加一行。
我在运行 Ubuntu Disco 和 Debian Buster 的机器上注意到了这一点,但我确信它也适用于 Ubuntu Trusty(甚至 Precise)。