openssh 7.4 以降を使用するとなぜか invalid format エラーで認証できない件

パスフレーズを使った SSH の認証を行っていると、時々、invalid format エラーが出て接続できないという謎現象があったので調べてみた。

問題の個所は sshconnect2.c

switch ((r = sshkey_load_private_type(KEY_UNSPEC, id->filename,
passphrase, &private, &comment, &perm_ok)))

openssh 7.2p2 で試してみたところ、 i=0 の時、r は 必ずSSH_ERR_KEY_WRONG_PASSPHRASEになった。
ところが、 openssh 7.4p1以降で実行すると -4 になるケースと SSH_ERR_KEY_WRONG_PASSPHRASE になるケースがあって、動作が変わっているようだ・ω・

if (private != NULL /* || quit*/ )
break;
これで動くと言えば動くんだけど気持ち悪いのだ・ω・

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です