SSHログインが極端に遅い原因|接続完了まで時間がかかる時の確認ポイント

目次
SSHログインが極端に遅い原因と対処方法を理解しよう
SSH接続自体は成功するものの、ログイン完了まで数十秒以上かかることがあります。
サーバ管理者にとって非常にストレスの大きいトラブルですが、原因はある程度パターン化されています。
特にDNS設定ミスや逆引きDNSの問題は実務で非常によく遭遇します。
本記事ではSSHログインが遅くなる代表的な原因と調査方法について解説します。
どの段階で遅いのかを確認する
まずはどこで時間がかかっているか確認します。
- TCP接続まで遅い
- 認証まで遅い
- ログイン後に遅い
- コマンド実行後に遅い
原因によって調査方法が変わります。
まずは-vオプションで確認する
最も重要な調査方法です。
# ssh -vvv user@serverどこで停止しているか確認できます。
原因1 逆引きDNSの問題
実務で最も多い原因です。
SSHサーバは接続元IPアドレスの逆引きを試みることがあります。
逆引きDNSが正しく設定されていないと待ち時間が発生します。
逆引き確認方法
# dig -x 192.168.60.100
または
# host 192.168.60.100名前解決できるか確認します。
UseDNS設定を確認する
OpenSSHには以下の設定があります。
UseDNS yes
接続元IPの逆引きを行います。
UseDNSを無効化する
現在ではよく利用される対策です。
UseDNS no
設定後はsshdを再起動します。
# systemctl restart sshd原因2 DNSサーバの応答遅延
名前解決サーバ自体が遅い場合です。
SSH認証前後でDNS問い合わせが発生し待機することがあります。
DNS確認方法
# cat /etc/resolv.conf設定されているDNSサーバを確認します。
DNS応答確認
# dig google.com応答時間を確認します。
原因3 LDAP認証の遅延
企業環境でよくあります。
Active DirectoryやLDAP認証を利用している場合です。
認証サーバ応答待ちが発生します。
原因4 SSSDの問題
Linuxの認証統合環境で発生します。
SSSDサービスが応答しない場合、ログインに時間がかかります。
状態確認
# systemctl status sssd企業環境では確認が必要です。
原因5 GSSAPI認証
Kerberos環境向けの認証機能です。
不要な環境では遅延原因になることがあります。
設定確認
GSSAPIAuthentication yes有効になっている場合があります。
無効化する例
GSSAPIAuthentication no応答速度が改善することがあります。
原因6 ネットワーク遅延
回線品質の問題です。
VPN環境や海外接続で発生することがあります。
ping確認
# ping server遅延を確認できます。
traceroute確認
# traceroute server経路上の問題を調査できます。
原因7 認証方式の探索
SSHは複数認証方式を順番に試します。
不要な認証方式が多いと時間がかかる場合があります。
確認例
Authentications that can continue:
publickey,password-vvvで確認できます。
原因8 ssh-agentの問題
大量の鍵を登録している場合です。
順番に試行するため遅延が発生します。
登録鍵確認
$ ssh-add -l不要な鍵を削除しましょう。
原因9 NFSホームディレクトリ
ホームディレクトリがNFS上にある場合です。
NFS応答遅延によってログインが遅くなります。
原因10 PAM設定
PAMモジュールが多数設定されている場合です。
認証処理が増加します。
設定確認
# cat /etc/pam.d/sshd認証モジュールを確認できます。
原因11 MOTD生成処理
ログイン後に表示されるメッセージです。
動的生成処理が重い場合があります。
確認ファイル
/etc/motd
または
pam_motd
を確認します。原因12 サーバ負荷
CPUやメモリ不足でも発生します。
ログイン処理自体が遅くなります。
負荷確認
# top
または
# uptimeを確認します。
原因13 ディスクI/O遅延
ストレージ性能不足も影響します。
認証情報の読み込みに時間がかかります。
確認方法
# iostat -xI/O状況を確認できます。
ログ確認
サーバ側ログも確認します。
# journalctl -u sshd認証処理の状況が分かります。
クライアント側で確認する
以下が最も重要です。
# ssh -vvv user@server停止箇所を特定できます。
実務で最も多い原因
経験上は以下の順です。
- 逆引きDNS
- UseDNS設定
- GSSAPI認証
- LDAP認証
- サーバ高負荷
まずここを確認しましょう。
推奨設定例
一般的なLinuxサーバでは以下がよく利用されます。
UseDNS no
GSSAPIAuthentication no不要な待機時間を削減できます。
実務での切り分け手順
- ssh -vvv実行
- 逆引き確認
- UseDNS確認
- GSSAPI確認
- DNS応答確認
- サーバ負荷確認
- journalctl確認
ほとんどの問題はこの流れで特定できます。
まとめ
SSHログインが極端に遅い場合、最も多い原因は逆引きDNSやUseDNS設定です。
そのほかにもGSSAPI認証、LDAP連携、サーバ負荷などさまざまな要因があります。
まずはssh -vvvでどこで停止しているか確認し、DNSや認証設定を順番に調査することが重要です。
原因を理解しておけば、数十秒かかるSSHログインも数秒以内に改善できる場合があります。





