我想在每个组/每个用户的基础上禁用或更改 SSH 登录上显示的 MOTD。关于 SuperUser 的这个问题有一个答案,指出我可以Match在sshd_config. 然而,man sshd_config规定:
Match
...
Only a subset of keywords may be used on the lines following a
Match keyword. Available keywords are AcceptEnv,
AllowAgentForwarding, AllowGroups, AllowTcpForwarding,
AllowUsers, AuthenticationMethods, AuthorizedKeysCommand,
AuthorizedKeysCommandUser, AuthorizedKeysFile,
AuthorizedPrincipalsFile, Banner, ChrootDirectory, DenyGroups,
DenyUsers, ForceCommand, GatewayPorts, GSSAPIAuthentication,
HostbasedAuthentication, HostbasedUsesNameFromPacketOnly,
KbdInteractiveAuthentication, KerberosAuthentication,
MaxAuthTries, MaxSessions, PasswordAuthentication,
PermitEmptyPasswords, PermitOpen, PermitRootLogin, PermitTTY,
PermitTunnel, PubkeyAuthentication, RekeyLimit,
RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,
X11Forwarding and X11UseLocalHost.
Run Code Online (Sandbox Code Playgroud)
我在该列表中看不到任何与 MOTD 相关的内容。事实上,尝试使用该建议会导致sshd由于配置不正确而无法启动。
那么,我可以这样做吗?如果是这样,怎么办?从 SSH …
我刚刚do-release-upgrade从 Ubuntu 16.04 升级到 17.04。但是,现在当我通过 SSH 登录时,我收到以下消息
Welcome to Ubuntu 17.04 (GNU/Linux 4.10.0-20-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Ubuntu 12.04 LTS end-of-life was April 28, 2017 -- Upgrade your Precise systems!
$ sudo do-release-upgrade -m server
0 packages can be updated.
0 updates are security updates.
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何删除
Ubuntu 12.04 LTS end-of-life was April 28, 2017 -- Upgrade your Precise systems!
$ sudo do-release-upgrade -m server
Run Code Online (Sandbox Code Playgroud)
它在发布升级之前不存在
我查了一下,我在 Zesty 上
lsb_release -a
No LSB …Run Code Online (Sandbox Code Playgroud) 我知道pam_motd在登录时更新 MOTD,但有时 MOTD 几天都没有更新,我很困惑可能是什么原因。我想添加uptime并who输出到 MOTD,从/etc/update-motd.d/脚本中正确调用它们,但如果向用户显示过时的信息,这似乎毫无意义。
从update-motd手册页:
Executable scripts in /etc/update-motd.d/* are executed by pam_motd(8) as
the root user at each login, and this information is concatenated in /var/run/motd.
The order of script execution is determined by the run-parts(8) --lsbsysinit option
(basically alphabetical order, with a few caveats).
Run Code Online (Sandbox Code Playgroud)
根据我的理解,每次登录时都应该更新 MOTD。但事实并非如此。而且我没有找到手动更新 MOTD 的脚本。我可以一个添加run-parts一行到cron,但我不认为这是解决这个问题的正确方法,因为这感觉就像一个黑客或替代方法。
我最后的希望是这样设置/etc/pam.d/login:
# Prints the message of the day upon succesful login.
# (Replaces …Run Code Online (Sandbox Code Playgroud) 我已经配置了一个很好的 motd 消息,当我通过 SSH 登录到我的 VPS 时,它会向我显示很多相关信息。
由于密码身份验证被禁用,sshd_config我也更愿意禁用 PAM,因为它只是不需要。
然而,Motd 是由 PAM 调用的,如果 PAM 被禁用,那么 motd 消息也会被禁用。如何以正确和干净的方式为禁用 PAM 的 SSH 登录显示 motd?
非常感谢
我刚刚执行了一个 do-release-upgrade 将服务器从 12.04 升级到 14.04。服务器在升级结束时重新启动。然而,当我登录时,我遇到了一个矛盾的 MotD:
欢迎使用 Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-117-generic x86_64)
- 文档:https : //help.ubuntu.com/
新版本“16.04.2 LTS”可用。运行“do-release-upgrade”以升级到它。
这个 Ubuntu 12.04 LTS 系统已经结束生命周期,不再接收安全更新。为了保护此系统的完整性,启用扩展安全维护更新至关重要:* https://www.ubuntu.com/esm
/var/lib/ubuntu-release-upgrader/release-upgrade-available 仅包含 16.04.2 消息(在相关问题中引用从 12.10 do-release-upgrade 到 13.04 之后,我仍然会在通过 MOTD 登录时收到有关 13.04 的通知)
我删除了 /run/motd.dynamic 以便它可以重新生成,但是此消息比 The Doctor 具有更多生命,并且它必须来自在版本升级过程中未清除的其他地方。
在运行 Ubuntu 14.04 的服务器上,我You have new mail每次通过 SSH 登录时都会在 motd 中看到。
问:这是谁告诉我的?
邮件没有找到任何东西,我不希望这台服务器上有任何邮件。
“我”和“根”的 crontab 包含MAILTO="".
文本You have new mail不在/etc/motd或 中/var/run/motd。
我希望一些命令是相关的:
me@AtomServer:~$mail
No mail for me
me@AtomServer:~$sudo mail
No mail for root
me@AtomServer:~$sudo ls -l /var/mail
total 8
-rw------- 1 la mail 1 Jul 15 22:12 me
-rw------- 1 root mail 1 Jul 27 19:59 root
me@AtomServer:~$
me@AtomServer:~$grep '^s.*motd' /etc/pam.d/sshd
session optional pam_motd.so # [1]
me@AtomServer:~$$ls -la /etc/update-motd.d …Run Code Online (Sandbox Code Playgroud) 还有一个问题涵盖了在没有 /etc/motd.conf 的现代 ubuntu 系统上更改 motd 的一些建议。
但是,另一个问题不会询问(或告诉)当前 Ubuntu MOTD 的存储位置。它在哪里?
这是迁移到 12.10 的一个问题,它现在似乎在 13.04 中重新出现,即升级到 13.04 后您仍然可以升级 MOTD。
我已经尝试了之前针对同一问题的修复列表重新移至 12.10 https://askubuntu.com/questions/253844/upgrade-12-04-2-lts-to-12-10-do-release-upgrade -fails-no-new-release-found但它们似乎不起作用,即没有 /var/lib/update-notifier/release-upgrade-available 可以删除。
我最近尝试修改我的 ubuntu 16.04 服务器计算机上的motd 。我转到/etc/update-motd.d/中的文件并修改了00-header脚本文件以测试它是否可以工作。
我刚刚添加了类似的东西
printf " Welcome, $USER"
Run Code Online (Sandbox Code Playgroud)
一段时间后,motd 实际上发生了变化。
问题是现在,即使我删除了printf并在其他脚本中添加了很多花哨的文本,motd 也根本没有改变。我可以做什么来手动更新 mod?有什么办法可以强制我这样做吗?
所以这就是交易。我已经/etc/motd.tail按照 Ubuntu 文档的建议创建了该文档,该文档应将静态内容附加到/etc/motd. 然而,除了这项工作之外,当我通过 ssh 登录到服务器时,它会显示 MOTD 两次。W00t?!有没有什么办法解决这一问题 ?这对我来说确实像是一个错误。谢谢