レンタルサーバーに接続する場合、パスワード認証でログインするのが一般的だと思う。それは分かっていたのだが、BitwardenをSSHエージェントとして使用していると思わぬ失敗をしたのでメモしておく。
どんな現象か?パスワードが合っているのにもかかわらず、ログインできないのだ。何故ログインできないのか、ssh -vvで詳細ログを出すことで解決していった。
公開鍵認証の乱れ打ち
Offering public key: github arimasou16...
Offering public key: ubuntu server...
このように公開鍵認証の乱れ打ちをしてしまい、Too many authentication failures(サーバー側の試行回数制限オーバー)となり、Disconnected from 123.123.123.123 port 22と切断されてしまったのだ。
そのため、公開鍵認証を無視させるためにssh -o PubkeyAuthentication=noとする必要があった。
これで解決かと思いきや、その後もConnection established.と回線は繋がったのに、kex_exchange_identification: read: Connection reset by peerと回線がリセットされてしまった。
おかしい。-o PubkeyAuthentication=noを指定しているのに、ログをみるとまだ公開鍵認証を試されている節がある。そこで、-o IdentityAgent=noneのオプションを追加して(というかコレだけで良いのでは)、エージェント機能を完全に使わないようにした。
正直なところ推測ベースであり、確実な検証まではしていないが、もしBitwardenをSSHエージェントとして使っていて、パスワード認証で接続できない時はぜひ試してみてほしい。