それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

SSHが鍵認証されないとき、パーミッションを疑え。

SSHでauthorized_keysが通らないとき、設定は正しいとき、/home/takuya/.sshパーミッションがおかしい。

鍵が有効にならない時、どうやって見分けるか。切り分け方。

他のユーザーで試してみる。

これが一番確実

ちなみに、

/home/takuya/.ssh/authorized_keys
/home/takuya/.ssh/id_rsa
/home/takuya/.ssh/id_dsa
/home/takuya/.ssh/id_dsa.pub
/home/takuya/.ssh/id_rsa.pub

パーミッションは重要。(詳しくは下追記参照)

ホームディレクトリも!!/home/takuya のパーミッションも重要

もちろん、.sshから上位フォルダのパーミッションも必要

chmod 755 /home/takuya  

これがうっかり777になってた。ホームディレクトリが777だと永遠にauthorized_keysは無効化される。
気付くまでに30時間くらい試行錯誤して週末が消えた。

2009-12-20追記

うまく動作しているときはこんな感じ。

.ssh/ ディレクトリエントリ
takuya@hosts:~$ ls .ssh/ -l
合計 24
-rw-r--r-- 1 takuya takuya  395 2009-11-03 06:19 authorized_keys #644
-rw-r--r-- 1 takuya takuya   24 2009-11-15 16:35 config          #644
-rw------- 1 takuya takuya 1675 2009-10-04 14:25 id_rsa          #600
-rw-r--r-- 1 takuya takuya  395 2009-10-04 14:25 id_rsa.pub      #644
-rw-r--r-- 1 takuya takuya 7824 2009-11-13 10:35 known_hosts     #644
ホームディレクト
takuya@v1046r:~$ ls -al ~ | grep "\."
drwxr-xr-x 50 takuya takuya     4096 2009-11-27 03:01 .
drwxr-xr-x  3 root   root       4096 2009-09-18 15:05 ..

2010-05-11追記

デフォルト設定はこんな感じ。

.ssh/ ディレクトリエントリ
takuya@hoge:~$ ls .ssh/ -l
合計 24
-rw------- 1 takuya takuya  395 2009-12-30 02:23 authorized_keys  #600
-rw------- 1 takuya takuya 1064 2009-12-30 02:42 authorized_keys2 #600
-rw------- 1 takuya takuya 1675 2009-10-04 14:25 id_rsa           #600
-rw-r--r-- 1 takuya takuya  395 2009-10-04 14:25 id_rsa.pub       #644
-rw-r--r-- 1 takuya takuya 7499 2010-05-03 08:27 known_hosts      #644

どうやら他人からの書き込みさえなければいいようです。

2010-09-03追記

パーミッションエラーはログを見たら分かるみたい。

/var/log/secure
Sep  3 16:11:46 web sshd[13511]: Authentication refused: bad ownership or modes for directory /home/takuya
Sep  3 16:11:51 web sshd[13512]: Connection closed by 192.168.10.1

この場合、ログは、/home/takuya のパーミッションがおかしいと言っている。
/home/takuya を 755 にしたら、ちゃんと動作しました。

2022-02-10

bad ownership or modes for directory が出ると思ったら、authorized_keysが authorized_keys2 になっていた。そんなバカなと思って確認したら

Debian/11 では

Expect .ssh/authorized_keys2 to be disregarded by default in future.

になってた。

2022-02-13 追記

sshd_config に StrictModes no を記入して、再起動してログインできたら、パーミッションが悪いと判定できる。

StrictModes no