ssh接続を利用してサーバーにアクセスしようとした時、「Permission denied」(アクセス拒否)でアクセスできない時はありませんでしょうか?
本日はそんなssh接続で「Permission denied 」でアクセスできない時の解決方法を紹介します。
コンテンツ
.sshディレクトリの権限
.sshディレクトリはユーザー直下の隠しディレクトリとして存在することが一般的です。
1 |
/home/<ユーザー>/.ssh |
以下ではユーザー名がtomというユーザーの場合の構造になります。
1 2 |
tom@mbp .ssh % pwd /home/tom/.ssh |
そして.sshディレクトリは権限が700になっている必要があります。
権限は、ls -al コマンドで確認できます。
1 2 |
tom@mbp ~ % ls -al drwx------ 5 tom staff 160 12 23 10:16 .ssh/ |
drwx—— を見ての通り権限が700になっていることを確認できました。
ちなみに自分で作成したばかりだと権限は700になっていません。
1 2 3 |
tom@mbp ~ % mkdir sample_dir tom@mbp ~ % ls -al | grep sample_dir drwxr-xr-x 2 tom staff 64 1 15 13:46 sample_dir/ |
.sshディレクトリを作成した時は必ず権限を700に設定しておきましょう。
以下のchmodコマンドで更新ができます。
1 2 3 4 |
tom@mbp ~ % chmod 700 ./sample_dir tom@mbp ~ % ls -al | grep sample_dir drwx------ 2 tom staff 64 1 15 13:46 sample_dir/ |
秘密鍵の権限
先に紹介した.sshディレクトリの権限と同様にsshアクセスするための秘密鍵の権限も、600か400に設定をしておく必要があります。
以下は権限が600の場合です。
1 2 |
tom@mbp .ssh % ls -al -rw-------@ 1 tom staff 1678 1 15 2022 id_rsa |
以下は権限が400の場合です。
1 2 |
tom@mbp .ssh % ls -al -r--------@ 1 tom staff 1678 1 15 2022 id_rsa |
これらもchmodコマンドを使用して権限を更新しておきましょう。
1 |
tom@mbp ~ % chmod 700 ./id_rsa |
ファイル所有者
秘密鍵を利用してssh接続する場合の id_rsa の所有者も確認しておきましょう。
以下はユーザー tom でssh接続を試みていますが id_rsa ファイルの所有者はjackとなっています。
1 2 |
tom@mbp .ssh % ls -al -r--------@ 1 jack jack 1678 1 15 2022 id_rsa |
chown コマンドを使用して所有者を変更します。
1 2 3 |
tom@mbp .ssh % chown tom:tom id_rsa tom@mbp .ssh % ls -al -r--------@ 1 tom tom 1678 1 15 2022 id_rsa |
接続先にauthorized_keysの設置
authorized_keysの権限
接続先にauthorized_keysファイルを作成し、authorized_keys ファイルの権限が600か400に設定をしておく必要があります。
1 2 |
$ ls -al -rw------- 1 tom tom 382 1月 16 2022 authorized_keys |
authorized_keysの中身
authorized_keys の中身もきちんと設定しておきます。
aws で新規EC2インスタンスを作成した場合は ec2-user 直下に authorized_keys ファイルおよび中身も生成されていますが、そうじゃない場合は自前で用意します。
中身は秘密鍵を ssh-keygen コマンドを実行してコピペして貼り付けます。
ssh-keygen -y -f id_rsa で出力した内容を authorized_keys に貼り付けます。
1 2 |
tom@mbp .ssh % ssh-keygen -y -f id_rsa ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCWEZsoW8SL9maSZIizNgVPOnVXQLeCyzsLnmeTVM8EhoCwxMXNdMBeCa1oIgyUJrky2KXXXOxmBcXwk2ed75+XrJE1LKRehDv9nNvjSzYpV7cGq/Z4lj7SEvZc+xKxPFmbptrmTostfrnsxwuEcTQz86EuCXgDieqyaRDvaVTvK+OtEEcxK9JUkqasd4ueL9qw0OTjra5oEuMxG+87Uks5S2L54EAGb1s4PQwIZAd73j3Qj/b+BXMtryray5jDRyMCzZruhwQVrJ9jN+vW5yEKNWltZF9yFFQ2oPdM75i0uleRfRpgZw7o6xmmFW7lthR3hnbRy9U5o2eA2oJEG8fdnb |
最後に
いかがでしたでしょうか。
以上が「Permission denied でssh接続ができない時の解決方法」の紹介記事になります。
コメントを残す