SSH接続で Permission denied が出るときの確認ポイント~鍵認証・権限設定・sshd_configの見直し~

  • URLをコピーしました!

LinuxサーバへSSH接続しようとしたとき、

Permission denied (publickey,password).

と表示されてログインできないことがあります。
これはSSHで最もよくあるトラブルのひとつです。

この記事では、Permission denied が出る典型的な原因と確認ポイントを整理します。

目次

1. 鍵認証の設定ミス

SSHは鍵認証が正しく設定されていないと接続できません。

(1) 秘密鍵の指定

クライアント側で秘密鍵を指定しているか確認します。

ssh -i ~/.ssh/id_rsa user@server

-i オプションで秘密鍵を明示するとトラブルを切り分けやすいです。

(2) 公開鍵の配置

サーバ側の ~/.ssh/authorized_keys に公開鍵が入っているか確認してください。

cat ~/.ssh/authorized_keys

改行や余分な空白があると認識されない場合もあります。

2. パーミッションの問題

SSHはセキュリティ上、ファイルやディレクトリの権限に非常に厳格です。

  • ホームディレクトリは 755以下
  • ~/.ssh700
  • ~/.ssh/authorized_keys600
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

これが正しく設定されていないと「鍵があっても拒否される」現象になります。

3. sshd_configの設定を確認する

サーバ側のSSHデーモン設定ファイル /etc/ssh/sshd_config が原因の場合もあります。

特に以下をチェックしましょう。

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no   # パスワードログインを無効にしている場合あり
  • 公開鍵認証を有効にしているか
  • authorized_keysの場所を正しく指定しているか
  • パスワード認証が禁止されていないか

設定を変更した場合は、sshdを再起動する必要があります。

sudo systemctl restart sshd

4. まとめ

  • 鍵が正しくクライアントとサーバに配置されているか
  • .ssh ディレクトリやファイルの権限が正しいか
  • sshd_config が公開鍵認証を許可しているか

この3点を確認すれば、多くの Permission denied エラーは解決できます。

よくあるエラーと解決方法まとめ
目次