今日やったこと 2010/07/24

概要

アキバ行ってきた。
本当に買おうと思ってたもの*1の中で買ってきたのは1つだけ。
あとはその場の判断で買った(つまり衝動買い)。安くて、よく使うものだけ。

公開鍵認証を使ってsshでリモートログインしようとすると、Permission denied (publickey)って言われて困ったの巻

症状

公開鍵を使ってSSHにログインできるときと、できないときがある。

Permission denied (publickey)

とか言われる。

原因

原因はホームディレクトリを暗号化していたことだった。暗号化していたのでauthorized_keysが読めない。
だから既にローカルでログインしている状態だと、ホームディレクトリが読めるので、リモートログインもできる。

対策

authorized_keysをホームディレクトリの外、暗号化されていない場所におけばいいだけの話だった。けど勝手に編集されないように注意。
……でも私の環境ではなぜかできない。
/var/ssh_authorized_keys/USERNAME/authorized_keys
とか
/var/ssh_authorized_keys/USERNAME/.ssh/authorized_keys
とか試してみたけどできない。
パーミッションは、適切……なはず(*2)。ホームディレクトリの外に置くことなんて想定されていないのだろうか。
ということで、設定ファイル/etc/ssh/sshd_confを編集。strictmode no にした。するとできた。
ちゃんとした方法を知っている方がいらっしゃいましたら、教えていただけるとうれしいです。

*1:トナー、電話のコード、ノートPCクーラー、スイッチングハブ

*2:varは755,root,root ssh_authorized_keysは777,root,root USERNAMEは700,USERNAME,USERNAME authorized_keysは600,USERNAME,USERNAME