トラブルシューティング

SSH トラブルシューティング:よくあるエラーと直し方

よくある SSH エラーの完全な地図 — connection refused、timed out、closed by remote host、permission denied、host key verification failed、no matching host key、too many auth failures、broken pipe — それぞれの意味と的を絞った解決法。

CC Chen Chen· 創業者·2026年6月24日·8 分で読めます

SSH トラブルシューティングを 1 つの表で

ほぼすべての SSH の失敗は 3 つのバケツのいずれかに当てはまります — 接続が確立しない認証が拒否されるセッションが切れる。最速の解決法は、正確なエラーを読んでその原因に飛ぶことです。このページは、よくあるすべての SSH エラー、その意味、そしてそれを直すための的を絞ったガイドの地図です。

症状から診断する

表示されるエラーたいていの意味解決法
Connection refusedマシンには届くが、そのポートで何もリッスンしていないConnection refused →
Connection timed outまったく応答なし — IP が違う、ホストがダウン、または外部からプライベートアドレスへTimed out →
Connection closed by remote hostサーバーが受け入れてから切断 — 多くは fail2ban のバンClosed by remote →
Permission denied (publickey)サーバーが認証を拒否 — 鍵/ユーザー名/権限Permission denied →
Too many authentication failuresクライアントが鍵を出しすぎて、正しい鍵が試される前に上限に達したToo many auth →
UNPROTECTED PRIVATE KEY FILE鍵ファイルが他者から読める — SSH がそれを無視するUnprotected key →
Host key verification failedサーバーの識別鍵が前回から変わったHost key changed →
no matching host key type found新しいクライアント vs 古いサーバー — アルゴリズムの不一致No matching host key →
Broken pipe / client_loopアイドル接続が切られた、またはネットワークが変わったBroken pipe →

接続レベルのエラー(つながらない)

これらは認証のに起こります — 問題は資格情報ではなくネットワーク経路です。3 つは簡単に見分けられます:

  • Connection refused — マシンが「ここでは何もリッスンしていない」と答えた。sshd が停止、ポートが違う、またはファイアウォールが拒否。
  • Connection timed out — まったく応答なし。IP が違う/変わった、ホストがスリープ中、または外部からプライベート LAN アドレスへ接続しようとしている(モバイルでの最大の原因)。
  • Connection closed by remote host — 受け入れてから切断した。たいていはログイン失敗後の fail2ban のバン、または過負荷の sshd。

認証エラー(つながるが拒否される)

接続は機能している。サーバーがあなたの資格情報を受け入れない。

  • Permission denied (publickey) — 万能のエラー:ユーザー名が違う、鍵が出されていない、鍵が authorized_keys にない、または権限が不正。
  • Too many authentication failures — クライアントに鍵が多く、正しい鍵の前にサーバーの上限を使い切る。IdentitiesOnly で解決。
  • UNPROTECTED PRIVATE KEY FILE — 秘密鍵が誰でも読める状態なので、SSH がそれを無視する。chmod 600 を 1 回。

ホスト鍵とアルゴリズムのエラー

  • Host key verification failed — サーバーの識別鍵が、あなたが固定したものと異なる。たいていは再インストールまたは IP の再利用。受け入れる前に確認を。
  • no matching host key type found — 新しいクライアントが古いサーバーの古いアルゴリズム(ssh-rsa)を拒否した。ホストごとに互換オプションを限定して指定。

セッションとその他のエラー

スマホからトラブルシューティング

モバイルでの SSH エラーの難しいところは、冗長な出力を読み、診断コマンドを覚えておくことです。使えるセッションが 1 つでもあれば、エラーを選択してアシスタントに尋ねてください — TermAI の AI が実際のメッセージとあなたのサーバーのコンテキストを読み、どの原因かを、確認して直すための正確なコマンドとともに教えてくれます。

SSH エラーメッセージを解釈する TermAI の AI アシスタント
ほとんどの SSH エラーは似て見えますが原因は異なります。エラーを選択すると、ライブセッションに基づいた AI が直すコマンドとともに原因を絞り込みます。

FAQ

SSH 接続をどうトラブルシューティングしますか?
正確なエラーを読んで分類します:接続レベル(refused/timed-out/closed)はネットワークまたはサーバーの問題、認証レベル(permission denied/too many auth)は資格情報、ホスト鍵エラーは識別またはアルゴリズムの不一致です。その後、そのエラーに的を絞った解決法に従ってください。

refused、timed out、closed の違いは?
Refused = 何もリッスンしていない。Timed out = まったく応答なし。Closed by remote host = 応答してからあなたを切断した(多くはバン)。

なぜ SSH は自宅では使えてモバイルデータでは使えない?
自宅ネットワークの外には存在しないプライベート LAN アドレスに接続している可能性が高いです — 安定したアドレスには Tailscale を使ってください。timed out を参照。

SSH エラーはサーバーのどこに記録されますか?
/var/log/auth.log(Debian/Ubuntu)または journalctl -u ssh — ほとんどの認証および接続拒否の本当の理由が記されています。

クイックファクト

  • 3 つのバケツ:接続レベル(refused/timed-out/closed)、認証レベル(permission denied/too many auth/unprotected key)、ホスト鍵/アルゴリズム
  • 接続エラーの見分け方:refused = 何もリッスンしていない · timed out = 応答なし · closed = 応答してから切断
  • サーバー側の真実:/var/log/auth.log または journalctl -u ssh
  • モバイル:エラーを選択し、AI に分類して直してもらう
Try TermAI

Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.

CC
Chen Chen — Founder of TermAI

Writes about mobile DevOps, terminal UX, and the surprising depth of "boring" infrastructure.

Was this useful? ← Back to blog