
最近、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 もそれを印刷するため、2 回表示され、煩わしくなります。
これについてはよく分かりませんが、motd を 2 回取得する場合は、PrintMOTD
no に設定する必要があります。
答え3
次の行を追加します/etc/pam.d/sshd
:
session optional pam_motd.so motd=/run/motd.dynamic noupdate
答え4
私の場合、スクリプトの 1 つが/etc/update-motd.d
実行に失敗した (ゼロ以外の終了コードを返す) ことが原因でした。これを修正すると、MOTD が再び表示されるようになりました。
どれがどれかわからない場合は、exit 0
そのディレクトリ内のすべてのスクリプトに 1 行追加するだけです。
私は Ubuntu Disco と Debian Buster を実行しているマシンでこれに気づきましたが、Ubuntu Trusty (さらには Precise) でも適用できると確信しています。