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

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 a

SELinuxの影響

通常は問題になりませんが、特殊なスクリプトを実行している場合はSELinuxが影響することがあります。

ログを確認します。

# ausearch -m AVC

SELinuxポリシー違反が発生していないか確認できます。

ログで確認する

原因が分からない場合はログを確認しましょう。

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によるログ確認も重要です。

トラブルシューティングの流れを理解しておくことで、ログインメッセージ関連の問題へ迅速に対応できるようになります。