KeePassXC があります。
このアプリには、 Pageant や ssh-agent といった既存の SSH Agent に鍵を追加したり削除したりする機能があります。
この記事では、 Windows 標準搭載の ssh-agent と KeePassXC を連携させる方法について説明します。
最近の Windows ( 1803 "Spring Update"
以降) には、オプション機能の一つとして OpenSSH が搭載されています。
この OpenSSH には ssh-agent も含まれており、「OpenSSH Authentication Agent」サービスとして起動することができます。
自動起動の設定は、「サービス」からポチポチ設定することもできますし、以下のようなスクリプトを管理者権限の PowerShell で実行することで設定することもできます。
# OpenSSH Client をインストールする
# 詳しくは https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse を読んでください
$cap = Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Client*'
Add-WindowsCapability -Online -Name $cap.Name
# ssh-agent サービスの設定を行う
# 詳しくは https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement を読んでください
## ssh-agent のスタートアップの種類を「自動起動」に設定する
## 自動起動するかどうかは好みですが、自動起動しない場合、 Windows を起動する毎にサービスを開始する必要があります
Set-Service -Name ssh-agent -StartupType Automatic
## ssh-agent を起動する
Start-Service -Name ssh-agent
「アプリケーション設定」の「SSH エージェント」を以下のように設定します。
以下のスクリーンショットが参考になるかもしれません。
KeePass データベースに秘密鍵のエントリーを追加します。
「パスワード」の欄に、秘密鍵のパスフレーズを入れます。それ以外は何でも構いません。
「添付ファイル」として秘密鍵を追加します。今回はファイル名として id_ed25519
を使っていますが、どのようなファイル名でも構いません。
公開鍵は、参照する際に KeePassXC が生成してくれるため、添付する必要はありません。
「秘密鍵」セクションで、「添付ファイル」を選択し、ドロップダウンから先ほど添付したファイルを選択します。
それ以外の設定はお好みで決めても構いませんが、以下の設定を有効にしないでください。
Windows の OpenSSH の制約で、これらを設定すると鍵をエージェントに登録できなくなります。
詳しくは Agent protocol error when adding ssh key on windows · Issue #4374 · keepassxreboot/keepassxc · GitHub を見てください。
秘密鍵をパスワードマネージャーに覚えさせると、鍵がいろいろな所に散らばったりしなくなるので、そこそこ便利です。
そもそも秘密鍵を複数の端末で使いまわしてもいいのかなど、いろいろ議論があるかと思いますが、気が向いた方は使ってみるといいかもしれません。