トラブルシューティング

SSH がまだパスワードを求める?6 つの原因と修正

SSH 鍵を追加したのにまだパスワードを求められる ── サーバーが鍵を拒否しています。6 つの原因(パーミッション、ユーザー違い、鍵が未提示、sshd 設定、SELinux、未インストール)と、どれなのかを見つける方法。

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

なぜ SSH がまだパスワードを求めるのか

鍵を設定したのに SSH がパスワードを求め続ける ── これはサーバーがあなたの鍵を受け入れず、パスワード認証にフォールバックしていることを意味します。原因はほぼ常に 6 つのうちのどれかです:公開鍵が authorized_keys にない、ファイルまたはディレクトリのパーミッションが緩すぎる間違ったユーザーでログインしている、クライアントが鍵を提示していない、sshd で鍵認証が無効になっている、または SELinux がファイルに誤ったラベルを付けている。どれなのかを、速いものから順に見つける方法を紹介します。

6 つの原因

#原因チェック
1鍵が authorized_keys にない本当にこのユーザーにコピーしましたか?
2パーミッションが緩すぎる(最も多い)~/.ssh は 700、authorized_keys は 600、ホームはグループ書き込み不可
3ユーザー名が違う鍵はユーザーごと ── ログインするユーザーにインストールしましたか?
4クライアントが鍵を提示していないssh -v に "Offering public key…" が表示される?
5sshd が鍵認証を許可していないsshd_config に PubkeyAuthentication yes がある?
6SELinux のコンテキストが違うRHEL/Fedora:restorecon -R ~/.ssh

サーバーに教えてもらう

最速の診断は、接続中にサーバーの認証ログを見ることです。動作するセッション(またはコンソール)から:

sudo tail -f /var/log/auth.log    # Debian/Ubuntu
sudo journalctl -u ssh -f         # systemd

理由がそのまま書かれます ── Authentication refused: bad ownership or modes for file …(これが原因 #2)、または user not allowed など。クライアント側では、ssh -v user@host であなたの鍵がそもそも提示されているか(原因 #4)が分かります。

第 1 の修正:パーミッション

authorized_keys が読み取り可能すぎると、OpenSSH は黙って無視します。サーバー上で、ログインユーザーに対して:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R $USER:$USER ~/.ssh

あなたのホームディレクトリがグループまたは全員書き込み可能でないことも確認してください(chmod g-w,o-w ~)。「鍵をインストールしたのにまだパスワードを求められる」ケースのほとんどはこの原因です。クライアント側の鏡像となる問題 ── あなたの秘密鍵が緩すぎる ── は UNPROTECTED PRIVATE KEY FILE です。

その他の修正

  • 鍵が未インストール / ユーザーが違う ── ssh-copy-id で正しいアカウントに再コピーします。root にインストールしても ubuntu でのログインには役立ちません。
  • クライアントが提示していない ── 正しい鍵を指定します:ssh -i ~/.ssh/mykey user@host、または 特定の鍵を使うを参照。
  • sshd が無効にしている ── /etc/ssh/sshd_configPubkeyAuthentication yes を設定し、sudo systemctl restart ssh を実行します。

スマホでは

モバイルでこれがつらいのは、冗長なログを読み、それを原因に対応づけることです。そのマシンへの動作するセッションがあれば、auth.log の行を選択してアシスタントに尋ねるだけ ── TermAI の AI がそれを読み、パーミッションの問題なのか、鍵が無いのか、設定の問題なのかを、正確なコマンドとともに教えてくれます。そして TermAI は鍵を端末の Keychain に保存してあなたの代わりにデプロイするため、クライアント側の原因(間違った鍵の提示、秘密鍵のパーミッション不備)はそもそも起こりません。

SSH 鍵が拒否される理由を説明する TermAI の AI
auth.log の行を選んで AI に尋ねる:パーミッションの問題と鍵の欠如を見分け、正確な修正を示します。

FAQ

鍵を追加したのに SSH がまだパスワードを求めるのはなぜ?
サーバーが鍵を受け入れていないため、パスワードにフォールバックしています。多くの場合、~/.ssh(700)または authorized_keys(600)のパーミッションが緩すぎる、鍵が間違ったユーザーの下にある、または一度も追加されていません。/var/log/auth.log を確認してください。

鍵が提示されているか確認するには?
ssh -v user@host を実行し、"Offering public key" を探します。無ければ -i でクライアントに鍵を指定してください。

"bad ownership or modes" と出ます ── どうすれば?
これはパーミッションの原因です:chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys、そしてホームディレクトリがグループ書き込み可能でないことを確認してください。

サーバーが鍵認証を無効にしている可能性は?
あります ── /etc/ssh/sshd_configPubkeyAuthentication yes を確認し、sshd を再起動してください。

クイックファクト

  • 意味:サーバーがあなたの鍵を拒否し、パスワードにフォールバックした
  • 第 1 の原因:パーミッション ── ~/.ssh 700、authorized_keys 600、ホームはグループ書き込み不可
  • 診断:サーバー側は /var/log/auth.log、クライアント側は ssh -v
  • その他:ユーザー違い、鍵が未提示、PubkeyAuthentication no、SELinux コンテキスト
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