Cygwin の ssh が /.ssh の identity file を参照しようとする

通常、 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
(略)

意図した動作になりました。


コメント

タイトルとURLをコピーしました