実務でよくあるSSHトラブル集|現場で頻発する障害と対処方法まとめ

目次
実務でよくあるSSHトラブルと対処方法をまとめて理解しよう
SSHはLinuxサーバ管理において最も利用されるリモートアクセス手段です。
しかし実際の運用現場では、さまざまなトラブルが発生します。
SSHが利用できなくなるとサーバ管理そのものが困難になるため、迅速な原因特定と復旧が求められます。
本記事では、実務で特によく遭遇するSSHトラブルと、その確認ポイントや対処方法についてまとめて解説します。
まず確認するべき基本項目
SSH接続できない場合は、以下の順番で確認すると効率的です。
- ネットワーク疎通
- sshd起動確認
- ポート待受確認
- firewalld確認
- SELinux確認
- 認証設定確認
- ログ確認
この流れを覚えておくと多くの問題を解決できます。
トラブル1 SSH接続できない
最も多い障害です。
典型的なエラーです。
Connection timed out
まずはネットワーク疎通を確認します。
$ ping server
または
$ nc -zv server 22トラブル2 Connection refused
SSHサービスが停止している可能性があります。
Connection refused
確認します。
# systemctl status sshd
停止していれば起動します。
# systemctl start sshdトラブル3 Permission denied (publickey)
公開鍵認証失敗です。
Permission denied (publickey)以下を確認します。
- authorized_keys
- ファイル権限
- 秘密鍵
- ユーザー名
まずはデバッグ表示を利用しましょう。
$ ssh -vvv user@serverトラブル4 Host key verification failed
ホスト鍵不一致です。
Host key verification failed
サーバ再構築後によく発生します。
削除します。
# ssh-keygen -R serverトラブル5 known_hostsエラー
ホスト鍵変更時によく発生します。
VirtualBoxやクラウド環境で頻繁に見られます。
原因確認後に該当エントリを削除します。
トラブル6 SSHポート変更後に接続できない
非常に多いミスです。
例えば以下です。
Port 2222変更後は以下も必要です。
- firewalld設定
- SELinux設定
- クラウドFW設定
トラブル7 firewalldによる通信遮断
SSHサービスが許可されていない場合です。
# firewall-cmd --list-services
sshが無ければ追加します。
# firewall-cmd --add-service=sshトラブル8 SELinuxによる制限
設定変更後によく発生します。
状態確認です。
# getenforce
ログも確認します。
# ausearch -m AVCトラブル9 SSHログインが極端に遅い
実務で非常に多い問題です。
主な原因は以下です。
- 逆引きDNS
- UseDNS
- GSSAPI
- LDAP認証
まず確認します。
$ ssh -vvv user@serverトラブル10 SSH接続が途中で切断される
長時間作業中によく発生します。
主な原因です。
- NATタイムアウト
- VPN切断
- KeepAlive未設定
以下を設定します。
ServerAliveInterval 60トラブル11 authorized_keysの権限不備
非常に多い原因です。
権限を修正します。
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keysトラブル12 ホームディレクトリ権限不備
公開鍵認証へ影響します。
$ chown user:user ~所有者も確認しましょう。
トラブル13 SSH鍵を間違えている
複数鍵を管理している環境で発生します。
利用鍵を確認します。
$ ssh -vvv user@serverトラブル14 ssh-agent問題
誤った鍵が利用されることがあります。
確認します。
ssh-add -lトラブル15 rootログインできない
正常な動作の場合があります。
設定確認です。
PermitRootLogin noセキュリティ対策として設定されることがあります。
トラブル16 ユーザー制限に引っかかる
以下の設定を確認します。
AllowUsers
AllowGroups
DenyUsers
アクセス制限が原因の場合があります。
トラブル17 SSH総当たり攻撃
公開サーバでは日常的に発生します。
ログ確認です。
# journalctl -u sshdFail2ban導入も検討しましょう。
トラブル18 Fail2banによるブロック
管理者自身がブロックされる場合があります。
状態確認です。
# fail2ban-client status sshdトラブル19 ProxyJump接続失敗
踏み台サーバ構成で発生します。
デバッグ表示で確認します。
$ ssh -vvv targetトラブル20 ポートフォワーディング失敗
トンネリング利用時の問題です。
確認項目です。
- AllowTcpForwarding
- GatewayPorts
- firewalld
トラブル21 SCP・SFTPだけ失敗する
SSHは接続できるのに転送だけ失敗するケースです。
SFTPサブシステムを確認します。
Subsystem sftpトラブル22 SSH設定ミス
sshd_config編集後に発生します。
反映前に確認します。
# sshd -t必須の確認作業です。
トラブル23 クラウドFW設定ミス
AWSやAzureで非常に多い問題です。
- AWS Security Group
- Azure NSG
- GCP Firewall
OS側だけではありません。
トラブル24 ログを確認していない
実務で意外と多いケースです。
まずログを確認しましょう。
# journalctl -u sshd原因特定への近道です。
SSH障害調査で必須のコマンド
# ssh -vvv user@server
# systemctl status sshd
# ss -antlp | grep sshd
# journalctl -u sshd
# firewall-cmd --list-allまずはこれらを覚えておきましょう。
実務でおすすめの調査手順
- ping確認
- ポート疎通確認
- sshd確認
- firewalld確認
- SELinux確認
- ssh -vvv実行
- journalctl確認
この順番なら効率よく切り分けできます。
まとめ
SSHトラブルは一見すると複雑に見えますが、多くの場合は原因がパターン化されています。
特に公開鍵認証、firewalld、SELinux、DNS、known_hosts関連は頻繁に発生するため、調査手順を覚えておくことが重要です。
また、ssh -vvvとjournalctl -u sshdはSSH障害調査の基本ツールです。
これらを活用して効率的に問題を切り分けられるようになれば、実務でのSSH運用に大きく役立つでしょう。





