背景
以前次のようにライブラリを利用して、Bitwarden上でsshキーを管理するやり方を紹介しました。
2025年1月からに公式もsshキーをサポートしていたので、公式のやり方を紹介します。
環境
- macOS(M2) v15.7.2
- Bitwardenデスクトップ v2025.11.2
注意点
- サポートしているアルゴリズムは
ed25519のみrsaやecdsaは対応していない
- インポートはできるがサポートしているアルゴリズムは同上
手順
Bitwardenのデスクトップアプリで行います。
sshキーの作成
SSHキーというタイプができているので、そこをクリックします。
+ボタンを押し、SSHキーを選択します。

名前が空欄になっているので記入します。

sshエージェントの設定
デスクトップアプリが
- AppStore版
- 公式dmg版
でやり方が異なります。
前者はApp Sandbox の制約があるので、好きにソケットファイルを配置する場所を指定できないためです。
AppStore版
次のコマンドを<user>の部分を自分のユーザにして、.bashrcなどに記載&sourceしておきます。
export SSH_AUTH_SOCK=/Users/<user>/Library/Containers/com.bitwarden.desktop/Data/.bitwarden-ssh-agent.sock
公式dmg版
公式dmgでは制約がなく好きな場所に置けるので、次のようにHOMEに指定することができます。
export SSH_AUTH_SOCK=/Users/<user>/.bitwarden-ssh-agent.sock
Bitwardenアプリで有効化
Bitwardenアプリの設定を開くと次のようなメニューがあるので、チェックボックスをONにします。

動作確認
ssh-add -L
前述の設定が完了していると、
$ ssh-add -L 256 SHA256:xxxxx bw_ed25519 (ED25519)
で登録を確認できます。
$ ssh-add -L The agent has no identities.
となる場合は「sshエージェントの設定」「Bitwardenアプリで有効化」のどちらかができていないので再確認してください。
ssh
sshサーバをdockerで立ち上げて検証します。
デスクトップアプリから公開鍵をコピーして利用します。
$ PUBKEY="ssh-ed25519 xxx" $ docker run -d --name sshd \ -p 2222:2222 \ -e PUBLIC_KEY="$PUBKEY" \ linuxserver/openssh-server
sshします。
$ ssh -p 2222 'linuxserver.io'@localhost
デスクトップアプリで次の確認が入ります。

認可するとsshログインが完了します。
$ ssh -p 2222 'linuxserver.io'@localhost Welcome to OpenSSH Server b6b89b2baa94:~$
ユースケース
GitHubでのgit clone
https://github.com/settings/keys
でSSH公開鍵を登録します。

試しにプライベートリポジトリでsshによるgit cloneをします。

$ git clone git@github.com:jun06t/xxx.git Cloning into 'xxx'... The authenticity of host 'github.com (20.27.177.113)' can't be established. ED25519 key fingerprint is SHA256:xxx. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. remote: Enumerating objects: 1145, done. remote: Counting objects: 100% (126/126), done. remote: Compressing objects: 100% (90/90), done. remote: Total 1145 (delta 46), reused 103 (delta 24), pack-reused 1019 (from 1) Receiving objects: 100% (1145/1145), 182.32 KiB | 544.00 KiB/s, done. Resolving deltas: 100% (439/439), done.
途中で先ほどのようなBitwardenによる認可チェックが入り、許可するとcloneが完了します。
その他
既存の鍵をインポートしたい
既存の鍵をインポートしたい場合は、それをクリップボードにコピーした状態でSSHキーの次の部分を押すとインポートしてくれます。

ただし注意書きしたようにed25519しかサポートしていません。
sshで毎回認可ボタン押すのが面倒
都度認証させるのが面倒な場合は設定で表示しないにしておきます。

ターミナル以外でも署名したい場合
例えば僕はForkというGit管理アプリを使っています。
しかし前述の設定だけだとForkはSSH_AUTH_SOCKETを把握していません。
この場合ターミナルから
$ open -a Fork
このように環境変数を引き渡す形で起動すると、その他のアプリ(Forkなど)でも使えるようになります。
ssh-agentが固まる
Bitwardenデスクトップアプリのロックや再起動が起きると、どうやらssh-agentがアクセスしていたソケットにアクセスできなくなり、ssh-agentを使うgitコマンドなどが固まります。
その際はBitwardenアプリを一度手動で再起動し、ターミナルの方もソケットを改めて参照するよう再起動すると直ります。
まとめ
公式がssh-agent対応してくれたので安心して使えるようになりました。