LoginSignup
0
2

More than 5 years have passed since last update.

[CentOS7] SSH の "Permission denied" を駆逐するためのチェックリスト

Last updated at Posted at 2018-10-18

ぼくのトラウマ

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

環境

クライアント: CentOS7
サーバー: CentOS7

確認しよう

パーミッション、所有者の設定に原因があることが多いみたい。

公開鍵

サーバー側に保管するよ。

保管場所の確認

公開鍵はファイル名を authorized_keys に変更。

/home/user/.ssh/authorized_keys

パーミッションの確認

  • /home/user/.ssh700

  • /home/user/.ssh/authorized_keys600

所有者の確認

  • /home/user/.ssh の所有者は user 本人(鍵だけではなくディレクトリも所有者を確認!)

  • /home/user/.ssh/authorized_keys の所有者は user 本人

こんな感じになるはず

ls -la コマンドでパーミッション、所有者を確認。

  • /home/user/.ssh
drwx------. 2 user user 29 10月 1 12:00 .ssh
  • /home/user/.ssh/authorized_keys
-rw-------. 1 user user 410 10月 1 12:00 authorized_keys

秘密鍵

クライアント側に保存するよ。

保管場所の確認

/home/user/.ssh/id_rsa

パーミッション確認

  • /home/user/.ssh700

  • /home/user/.ssh/id_rsa600

所有者の確認

  • /home/user/.ssh の所有者は user 本人(鍵だけではなくディレクトリも所有者を確認!)

  • /home/user/.ssh/id_rsa の所有者は user 本人

こんな感じになるはず

ls -la コマンドでパーミッション、所有者を確認。

  • /home/user/.ssh
drwx------. 2 user user 29 10月 1 12:00 .ssh
  • /home/user/.ssh/id_rsa
-rw-------. 1 user user 410 10月 1 12:00 id_rsa

その他、ありそうな原因(随時更新予定)

ホームディレクトリのパーミッション

サーバー側、クライアント側両方のホームディレクトリ /home/user は user(本人)以外書き込みできないようパーミッションを設定する。

755 とか 700とかであればOK。

drwx------. 26 user user 4096 10月 1 12:00 user

鍵をコピペした場合

クライアント側で作った公開鍵をサーバー側に保存するとき、鍵の中身をコピペした場合。

  • 全体が正確にコピペされているかどうか
  • 変な改行が入っていないか

秘密鍵のファイル名を変更した場合

秘密鍵のデフォルトのファイル名は id_rsa ですが、これを変更した場合は ssh コマンドを叩く際に -i で鍵の指定が必要です。

例)id_rsa から id_rsa_test に変更

$ ssh 192.168.0.123 -i ~/.ssh/id_rsa_test
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2