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 のパーミッションも重要
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.
になってた。