Linuxログインバナー設定のトラブルシューティング|表示されない原因と対処法

目次
SSHバナーやmotdが表示されないときの確認ポイント|Linuxログインメッセージの障害対応
Linuxサーバでログインバナーやmotdを設定したにもかかわらず、期待したメッセージが表示されないことがあります。
「/etc/issue.netを作成したのにSSH接続時に表示されない」「/etc/motdへ記載したのにログイン後に表示されない」といったトラブルは、実務でも比較的よく発生します。
多くの場合は設定ミスやサービス再起動忘れなどが原因ですが、PAMやSSH設定が関係するケースもあります。
本記事では、Linuxログインバナーに関する代表的なトラブルと対処方法を解説します。
まず確認すべきこと
トラブル発生時は、いきなり設定を変更するのではなく、どのメッセージが表示されないのかを整理しましょう。
認証前
↓
/etc/issue.net
認証後
↓
/etc/motd
どちらの問題なのかによって確認箇所が変わります。
SSHログインバナーが表示されない
最も多いトラブルの一つです。
例えば以下のように設定したのに表示されない場合があります。
Banner /etc/issue.netこの場合は複数の確認ポイントがあります。
原因① Bannerディレクティブが設定されていない
まずsshd_configを確認します。
# grep Banner /etc/ssh/sshd_config
正常な例です。
Banner /etc/issue.net
コメントアウトされている場合は無効です。
#Banner none実務ではコメントアウトされたままになっているケースがよくあります。
原因② issue.netが存在しない
ファイル自体が存在しない場合もあります。
# ls -l /etc/issue.net
存在しなければ作成します。
# vi /etc/issue.net
内容は簡単なテキストで構いません。原因③ sshd再起動忘れ
設定変更後にサービスを再起動していないケースです。
# systemctl restart sshd実務でも非常に多い原因です。
設定変更後は必ず反映作業を行いましょう。
原因④ sshd_configの構文エラー
設定ファイルに誤りがあると反映されません。
再起動前に以下で確認できます。
# sshd -t何も表示されなければ正常です。
エラーが表示される場合は修正が必要です。
原因⑤ Include設定の影響
最近のAlmaLinuxやRocky LinuxではIncludeが利用されています。
Include /etc/ssh/sshd_config.d/*.conf別ファイルでBanner設定が上書きされている場合があります。
以下も確認しましょう。
# ls /etc/ssh/sshd_config.d/motdが表示されない
次に多いのがmotd関連のトラブルです。
ログイン後のメッセージが表示されない場合は以下を確認します。
原因⑥ /etc/motdが空ファイル
内容が空の場合は何も表示されません。
cat /etc/motdまずは内容を確認しましょう。
原因⑦ PrintMotd設定
SSH設定によってはmotd表示が制御されています。
# grep PrintMotd /etc/ssh/sshd_config
環境によっては以下のようになっています。
PrintMotd yes設定内容を確認しましょう。
原因⑧ PAM設定の問題
近年のLinuxではPAM経由でmotdを表示する場合があります。
以下を確認します。
# cat /etc/pam.d/sshd
例えばUbuntuでは以下が存在します。
session optional pam_motd.soこの設定が削除されていると表示されません。
原因⑨ 権限設定の問題
ファイル権限に問題があるケースです。
# ls -l /etc/motd
通常は以下のようになっています。
-rw-r--r--特殊な権限設定になっていないか確認します。
ログインバナーが途中で消える
複数のログインスクリプトが実行される環境では、表示が流れてしまう場合があります。
例えば以下の設定です。
- .bashrc
- .bash_profile
- /etc/profile
- /etc/profile.d/
ログイン後に大量のメッセージが出力されると、motdが見えにくくなります。
Ubuntuで動的motdが表示されない
Ubuntuではupdate-motdが利用されています。
以下を確認します。
# ls /etc/update-motd.d/スクリプトの実行権限が失われている場合があります。
# chmod +x /etc/update-motd.d/*必要に応じて修正します。
接続先サーバを間違えている
実務で意外と多い原因です。
複数台のサーバを運用している場合、設定したサーバとは別のサーバへ接続していることがあります。
ホスト名を確認しましょう。
# hostname
IPアドレス確認も有効です。
# ip aSELinuxの影響
通常は問題になりませんが、特殊なスクリプトを実行している場合はSELinuxが影響することがあります。
ログを確認します。
# ausearch -m AVCSELinuxポリシー違反が発生していないか確認できます。
ログで確認する
原因が分からない場合はログを確認しましょう。
SSH関連ログです。
# journalctl -u sshd
または以下です。
tail -f /var/log/secure認証エラーやPAMエラーが確認できる場合があります。
実務での切り分け手順
実際の現場では以下の順序で確認すると効率的です。
1. ファイル存在確認
↓
2. 設定確認
↓
3. 構文確認
↓
4. サービス再起動
↓
5. ログ確認
↓
6. PAM確認
上から順番に確認すると多くの問題を解決できます。
実務で覚えておきたいポイント
- Banner設定を確認する
- issue.netの存在を確認する
- sshd -tで構文確認する
- sshd再起動を忘れない
- PAM設定を確認する
- PrintMotdを確認する
- ログで原因調査する
- 接続先サーバを確認する
まとめ
Linuxのログインバナーやmotdが表示されない場合、多くは設定ミスや反映漏れが原因です。
まずはBanner設定、issue.net、motd、PAM設定など基本的な項目から確認しましょう。
また、sshd -tによる構文確認やjournalctlによるログ確認も重要です。
トラブルシューティングの流れを理解しておくことで、ログインメッセージ関連の問題へ迅速に対応できるようになります。





