通常、 ssh の identity file は ~/.ssh を参照するのが普通だと思うのだけど、ふと Cygwin の ssh を使おうと思ったところ、なんか手元の環境だと /.ssh を参照していた。
/home/mizusawa% ssh -v xxxxxxxx OpenSSH_5.9p1, OpenSSL 0.9.8t 18 Jan 2012 debug1: Connecting to xxxxxxxx [xxx.xxx.xxx.xxx] port 22. debug1: Connection established. debug1: identity file /.ssh/id_rsa type 1 debug1: identity file /.ssh/id_rsa-cert type -1 (略)
原因を調べるのが面倒だったので、ひとまず ~/.ssh へのシンボリックリンクを張って使ってたのだけど、どうにも気持ち悪いのでちゃんと原因を調べることに。
で、ネットで調べたところ、 /etc/passwd にホームディレクトリの記述がないとこうなるらしい。……確かに /etc/passwd を見ると、自分のユーザのところにホームディレクトリが設定されていない。w えぇー、ちゃんと環境変数 HOME は /home/mizusawa が入ってきてるのに……別の所から情報引っ張ってきてるのか?
ともかく、正しいホームディレクトリを設定して、改めて動作確認。
/home/mizusawa% ssh -v xxxxxxxx OpenSSH_5.9p1, OpenSSL 0.9.8t 18 Jan 2012 debug1: Connecting to xxxxxxxx [xxx.xxx.xxx.xxx] port 22. debug1: Connection established. debug1: identity file /home/mizusawa/.ssh/id_rsa type 1 debug1: identity file /home/mizusawa/.ssh/id_rsa-cert type -1 (略)
意図した動作になりました。
コメント