Permission denied でssh接続ができない時の解決方法

ssh接続を利用してサーバーにアクセスしようとした時、「Permission denied」(アクセス拒否)でアクセスできない時はありませんでしょうか?

本日はそんなssh接続で「Permission denied 」でアクセスできない時の解決方法を紹介します。

.sshディレクトリの権限

.sshディレクトリはユーザー直下の隠しディレクトリとして存在することが一般的です。

以下ではユーザー名がtomというユーザーの場合の構造になります。

そして.sshディレクトリは権限が700になっている必要があります。

権限は、ls -al コマンドで確認できます。

drwx—— を見ての通り権限が700になっていることを確認できました。

ちなみに自分で作成したばかりだと権限は700になっていません。

.sshディレクトリを作成した時は必ず権限を700に設定しておきましょう。

以下のchmodコマンドで更新ができます。

秘密鍵の権限

先に紹介した.sshディレクトリの権限と同様にsshアクセスするための秘密鍵の権限も、600か400に設定をしておく必要があります。

以下は権限が600の場合です。

以下は権限が400の場合です。

これらもchmodコマンドを使用して権限を更新しておきましょう。

ファイル所有者

秘密鍵を利用してssh接続する場合の id_rsa の所有者も確認しておきましょう。

以下はユーザー tom でssh接続を試みていますが id_rsa ファイルの所有者はjackとなっています。

chown コマンドを使用して所有者を変更します。

接続先にauthorized_keysの設置

authorized_keysの権限

接続先にauthorized_keysファイルを作成し、authorized_keys ファイルの権限が600か400に設定をしておく必要があります。

authorized_keysの中身

authorized_keys の中身もきちんと設定しておきます。

aws で新規EC2インスタンスを作成した場合は ec2-user 直下に authorized_keys ファイルおよび中身も生成されていますが、そうじゃない場合は自前で用意します。

中身は秘密鍵を ssh-keygen コマンドを実行してコピペして貼り付けます。

ssh-keygen -y -f id_rsa で出力した内容を authorized_keys に貼り付けます。

最後に

いかがでしたでしょうか。

以上が「Permission denied でssh接続ができない時の解決方法」の紹介記事になります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です