ssh接続でPermission deniedと表示されたときの対処法

更新:2018.12.26

目次

はじめに

サーバにSSH接続しようとしたときに、「Permission denied」と表示された場合の対処法を紹介します。

.sshディレクトリの権限

/home/ユーザ/.sshディレクトリの権限を確認します。 下記のコマンドで.sshディレクトリの権限を確認できます。

$ ls -al ~/

.sshディレクトリは権限が700になっている必要があります。 実行した結果、ファイルのリストが表示されます。 .sshディレクトリに関する情報が、下記のようになってれば大丈夫です。

drwx------  27 xxx   staff    864 12 20 10:43 .ssh

もし、下記のように違っている場合は、chmodコマンドを使って権限を変更する必要があります。

drwxr--r--  27 xxx   staff    864 12 20 10:43 .ssh

こんな風になっていたり、

drwxr-xr-x  27 xxx   staff    864 12 20 10:43 .ssh

下記のコマンドを実行すると権限を変更できます。

$ chmod 700 ~/.ssh/

秘密鍵の権限

.sshディレクトリと同様に秘密鍵の権限が正しく設定されていない場合も、「Permission denied」となります。 秘密鍵の権限確認方法は下記のコマンドを実行すると確認できます。

$ ls -al ~/.ssh/id_rsa

※id_rsaが秘密鍵のファイルです。ファイル名を変更している場合は変更したファイル名を指定してコマンドを実行してください。

秘密鍵の権限が600か400になっている必要があります。 下記のように600になっているか、

-rw-------  1 xxx  staff  1823 12  6 18:15 /Users/xxx/.ssh/id_rsa

下記のように400になっていれば大丈夫です。

-r--------  1 xxx  staff  1823 12  6 18:15 /Users/xxx/.ssh/id_rsa

もし、なっていない場合は、下記のコマンドで権限を変更てください。

$ chmod 600 ~/.ssh/id_rsa

400にしたい場合は下記のようになります。

$ chmod 400 ~/.ssh/id_rsa

権限を600にするか400にするかは、どちらでも構いません。600の場合はファイルの所有者に読み取り、書き込み権限が付きます。 400にした場合は、読み取り権限のみが付きます。

authorized_keysの権限

接続先のauthorized_keysファイルの権限について、600になっている必要があります。 ローカル側の確認方法と同様に、下記のコマンドを実行して権限が600、もしくは、400になっているか確認してください。

$ ls -al ~/.ssh/authorized_keys

600、もしくは、400になっていない場合は、下記のコマンドで権限を変更してください。

# 600 にしたい場合
$ chmod 600 ~/.ssh/authorized_keys

# 400 にしたい場合
$ chmod 400 ~/.ssh/authorized_keys
Linux関連記事





Linux tips
2008/05/24





これからブログなどのサイトを作りたいと思っている人は、お名前.comでのドメイン取得がオススメです。

■□━━ 急げ、ドメインは早い者勝ち! ━━□■
     ■お名前.com

アマゾンの2019年本屋大賞一覧

そして、バトンは渡された
ひと
ベルリンは晴れているか
熱帯
ある男

楽天市場のおすすめ商品一覧

お金2.0 新しい経済のルールと生き方 [ 佐藤航陽 ]
全部レンチン!やせるおかず 作りおき 時短、手間なし、失敗なし
「読む力」と「地頭力」がいっきに身につく 東大読書 [ 西岡 壱誠 ]