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以下
~/.ssh
は 700~/.ssh/authorized_keys
は 600
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 エラーは解決できます。
よくあるエラーと解決方法まとめ
あわせて読みたい


【完全版】SSHエラー大全|接続できない原因と解決方法まとめ
SSH(Secure Shell)はLinuxサーバー管理に欠かせないリモート接続の手段ですが、実際の運用では「接続できない」「認証に失敗する」「タイムアウトする」など、さまざ…