mochikoAsTechのdig日記

当方好きなコマンドはdigです!お友達から!!よろしくお願いします!!!

WinSCP+PuTTYごった煮のPageantでDisconnectedエラーが出るときの解決方法

WinSCP5.1.5+PuTTYごった煮同梱のPageant0.60を使ってたんだけど、ある日突然「Disconnected: No supported authentication methods available (server sent: publickey)」というエラーで、サーバにSCPでログインできなくなった・・・。PuTTYごった煮+PageantだとSSHでサーバに入れてるので、サーバにも秘密鍵にも問題はないっぽい・・・。でもWinSCPのエラーメッセージを見る限り、Pageantを認識できてないっぽい・・・。

と、よーく考えたらWinSCPPageantが同梱されてる!私が使ってるPageantPuTTYごった煮同梱のだ!1つのPCにPageantが2つ!「WinSCPが見てる(認識してる)Pageantが違うんじゃない?認識先を変更したい!」と思ったけど、どこで変更するの・・・?

WinSCPの設定をあれこれ見たけど、結局変更する箇所が見つからなかったので、WinSCPを一旦アンインストールして、Pageantが同梱されていない状態でインストールしなおすことに。(カスタムインストールで出来た) 同梱されていなければ間違うこともあるまい・・・ぐへへ。(最後まで読むと分かるが、これが1つ目の間違い)

と思ったらWinSCP再インストール後も状況変わらず。

PuTTYごった煮同梱のPageantを起動してあるのに、WinSCPからは「鍵ないよー!Pageantから返事ないよー!」とエラーが出る。 ところでWinSCPのバージョンを確認すると5.1.5、Pageantは0.60・・・もしやWinSCPを自動アップデートにしてるから、Pageantの0.60(結構古い)に対応してないバージョンに勝手にアップデートしたんじゃ・・・。

ならば!WinSCPPageantが同梱された状態で再度インストールして、WinSCPの同梱PuTTYのフォルダを削除した後に、ごった煮のPuTTYをそこにおいたらどうよ!と思って置いて、WinSCPの「機能」からPageantを起動したら・・・起動できた!! やった!WinSCPをだませたよ!!(同じく最後まで読むと分かるが、これが2つ目の間違い)

でもやっぱりログインしようとすると、「鍵ないよー!Pageantから返事ないよー!」とエラー。 お前(WinSCP)なぁ、同梱のPageantが0.62で、ごった煮のPageantが0.60だからって・・・ん?

いろいろな覚え書き: AnkhSVN と TortoiseSVN と PuTTY でいろいろハマったお話 これを見て、ふと「Pageantのバージョン古いのが原因じゃないか?」と気づく。

Pageantの置いてある場所が問題なんじゃなくて、新しいWinSCP+新しいPageantの組み合わせじゃないと駄目なんじゃないの?と。

というわけでPuTTYごった煮の中にある「pageant.exe」だけを、最新版(Pageant0.62)のpageant.exeに差し替えてみた。そしたらうまくいったー!解決ー!

でもちょっと嫌なことが2点。

1つ目はPuTTYごった煮版 Pageantじゃないと、「秘密鍵パスフレーズを暗号化して記憶」してくれる機能がないこと。 ゑBLOG: PuTTYごった煮版 Pageant

これはまあPC起動時に毎回パスフレーズ入れればいいだけなので、いいか。むしろ安全のためにはその方がよかろう。

2つ目はタスクバー常駐のPageantが英語になること。 これもViewKeysとかSaved Sessionsとか、十分に意味の分かる範囲なので問題なし。

ちなみに、どうしても PuTTYごった煮版のPageantが使いたいの!という時は、WinSCPのバージョンを下げる、という方法でも解決出来る模様。(少なくともWinSCP4.3.8+Pageant0.60は問題なく動いているらしい)

ここまでやってようやく理解したけど、WinSCPは「どのPageantを使うか」を設定のどこかで指定しているわけじゃなくて、単純に「今起動しているPageant」を認識してるんだね。あー、解決してよかったー。