こんにちは。日々是発見が楽しみな西山です。
今さら言うまでもないことですが、SSH公開鍵認証の秘密鍵は安全な場所に保存する必要があります。また、メールなどネットワーク経由で転送するべきではないと言われていたりもします。
使用するPCのストレージ上に秘密鍵を置いている方が大半だと思いますが、
「秘密鍵の入ったPCが盗難に遭ったらどうしよう……」
と思ったことはないでしょうか。
また、最近のWindowsはデフォルトでOneDrive有効になりますが、秘密鍵ファイルをマイドキュメントに置いていると自動でOneDriveにアップロードされることになります。それはどうなの? と思う方もおられるでしょう。
今回は、SSHの秘密鍵をパスワードマネージャー「Bitwarden」のvault(保管庫)に格納し、ストレージ上からは秘密鍵を削除してみました。
BitwardenのSSHエージェント機能
Bitwardenは有名なパスワードマネージャーですが、2025年3月にSSHエージェント機能が実装されました。これは、Bitwarden自体がSSHクライアントからの要求に応じてSSH鍵を提供するエージェントとして動作するものです。
WindowsだとPuttyに同梱されるPagentがSSHエージェントとして有名ですが、BitwardenがPagentと同じ動きをする、と言えば分かりやすいでしょうか。
そしてBitwardenは保管庫を開く時にPINコードやWindows Helloで認証されるので、秘密鍵ファイルを常に暗号化された状態に保てます。
「Bitwardenのクラウドに秘密鍵をアップロードするのは大丈夫なの?」と思われそうですが、保管庫はユーザーが決めたマスターパスワードで暗号化されており、Bitwardenの運営でも中を見ることはできません。もしBitwardenのクラウドインフラが侵害されたとしても、第三者による解読は大変難しいと言われています。
Bitwarden SSHエージェントのセットアップ
Bitwardenのアカウントを持っていない場合、登録から始めて下さい。
SSHエージェント機能を利用するためにはBitwardenデスクトップアプリが必要です(Webブラウザの機能拡張にはSSHエージェント機能がありません)。インストーラをダウンロードし、セットアップ・ログインまで済ませて下さい。
-
画面下の+ボタンからアイテムの新規登録を開き、タイプ「SSH鍵」を選択します。

-
SSH秘密鍵のファイルをエディタ等で開き、ファイル全体をクリップボードにコピーします。
-
そのままアイテム登録画面の「インポート」ボタン(画像の水色枠のボタン)をクリックすると、自動的に所定のフィールドに鍵文字列が入力されます。問題なければ「保存」をクリックします。
Bitwardenへの鍵登録はこれで完了です。

- BitwardenのSSHエージェント機能は初期状態だと「無効」なので、「設定」を開き、「SSHエージェントを有効にする」のチェックボックスをオンにします。
SSHクライアントのセットアップ
-
OS標準のSSHエージェント(OpenSSHデーモン等)が起動している場合は無効化します(参考:https://bitwarden.com/help/ssh-agent/#configure-bitwarden-ssh-agent)。
-
SSHクライアントの設定でPC上の鍵ファイルを指している場合は、その設定を削除します。
この状態でSSH接続を開いてみると、まずSSHクライアントがSSHエージェントに秘密鍵を要求します。
BitwardenがSSHエージェントとして動いているので、要求されたBitwardenは保管庫を開くためユーザー認証を要求します。
PINコードやWindows Hello、またはマスターパスワードで認証が通れば保管庫が開き、格納された秘密鍵がSSHクライアントに渡されて公開鍵認証が行われます。
非対応のSSHクライアント
TeraTermやPuttyなど、歴史の古いSSHクライアントでは「SSHエージェント = pagent.exe」で決め打ち定義されているものがあります(内部的にどんな処理をしてるのか分かりませんが、pagent.exeのプロセスを探して操作したりしてるんでしょうか……?)。
こういったSSHクライアントではBitwardenがSSHエージェントになれないので、残念ながら安全な秘密鍵の保護機能を利用することはできません。

