SSHサービスに接続する際、時々コマンドを実行できるようになるまでコンソールが利用可能になるのを長時間待つ必要があります。遅延の原因はさまざまで、このガイドではいくつかの一般的な原因とその解決策を紹介します。
これらの解決策は通常、互いに関連していないため、それぞれを個別に調整し、動作を確認する方が実際の原因を特定しやすくなります。
提供されているコマンドはDebian/Ubuntuに対して動作します。CentOS/Alma/Rockyでは若干異なる場合があります。例えば、サービス名が「ssh」ではなく「sshd」になっている場合がありますので、コマンドを実行する際にはそれを考慮してください。それ以外は同じです。
1. 最も一般的な原因:DNSサーバーの待機
SSHサービスの設定ファイルを開きます:
nano /etc/ssh/sshd_config
UseDNSオプションを無効にして、IPアドレスの逆引き(PTR)を試みないようにします:
UseDNS no
変更後、サービスを再起動します:
service ssh restart
2. 接続タイムアウトが指定されていない
SSHサービスの設定ファイルを開きます:
nano /etc/ssh/sshd_config
次のように設定します:
LoginGraceTime 10s
変更後、サービスを再起動します:
service ssh restart
3. 長い遅延がsystemd-logindサービスに関連している
この場合、auth.logログには通常次のようなイベントが含まれます:
pam_systemd(sshd:session): Failed to create session: Connection timed out
サービスのステータスを確認します:
systemctl status systemd-logind
必要に応じて、restartコマンドでサービスを再起動します。
遅延が続く場合、viまたはnanoを使って次のファイルを開きます:
/etc/pam.d/common-session
次の行をコメントアウトします(#記号を追加):
#session optional pam_systemd.so
その後、サービスを再起動します:
systemctl restart systemd-logind
再度試してみてください。ただし、この設定ではコンソールが完全に動作しない場合があるため、この方法は一時的な解決策として検討すべきです。
No Comments Yet