先日、VirtualPC2007にCentOSを入れて、Windows側からSSHで接続、というのをやってました。
その際、なぜかSSHクライアントのPoderosaから鍵認証で接続できない、というトラブルがあったので備忘録がてらにメモしておきます。
まず状況としては、CentOSは最新の5.6で、WindowsXPからPoderosaにて接続しようとしていました。
とりあえず普通にパスワード認証でログインできることは確認。
その後、セキュリティ面を考えて(まあ仮想PCに繋いでいるだけなのでホントはパス認証でもいいんですが勉強も兼ねて)公開鍵・秘密鍵を利用した認証に変更することに。
Poderosa側で公開鍵・秘密鍵を作って、公開鍵をCentOSに送り、authorized_keysにコピペ、と順調に進んだつもりでした。
が、なぜかPodrosaからログインしようとすると「ユーザ認証に失敗しました」のエラーが。
パスワード認証だと通るのですが、鍵認証だとどうやっても通りません。
ためしにrootからのログインを一時的に許可して、そっちで鍵認証を通そうとしたのですがこちらも同じく「ユーザ認証に失敗しました」。
で、いったんPoderosaではなくPUTTYを使って、同じ鍵認証で試してみると……ログインできる。この辺りで、かなりハマり込みました。
で、小一時間悩んだ結果、「authorized_keys」がいったんクラッシュしていたのが原因だったと判明しました。
じつはauthorized_keysを編集中に、誤って一回Vimを閉じてしまっていたのです。
で、次回開いたときにクラッシュリカバリーとして、swapファイルをどう対処するかを聞かれていたのですが、ここでのリカバリ対処が誤っていたようです。
自分としてはちゃんと修復できたつもりでいたのですが、ファイル最終行にユーザー名が一行入ってしまっており、これのせいで認証が上手くいかなかったようです。(ためしにgEditで編集しようとして気づきました)
PUTTYとかは、どうやらこれを自動で無視して認証してくれたのですが、Poderosaではそうはいかなかったので認証が通らなかった、と。
で、この最後の一行を削除してみると、見事にログインできました。
もしもですが同じ状況でお困りの方がいたら参考にしてください。