自宅サーバーやらGitに接続するために秘密鍵をダウンロードするのは面倒だし、セキュリティリスクがある。 Bitwardenを使えば、SSHエージェントとして使える話はなんとなく知っていたが、情報が新旧混合していて、良く分からなったので、とりあえず、挑戦してみた。
基本は Bitwarden SSH Agentにあるとおり行えば出来る。のだが、いくつか罠があったので、記しておく。

まずは、設定からアプリ設定で、以下の項目にチェックする必要がある。
- SSHエージェントを有効にする

あとは、SSHキーを作成して、設定すればめでたしめでたしかとおもいきや…
Flatpak版(2025.2.1)が動かない
そもそもSSH認証ソケットが生成されないのだが、投稿にもあるとおりFlatsealで以下のようにすることでソケットが作成される。
-
Socket:: Secure Shell agent : socket=ssh-auth = ON
-
Filesystem:: Other files :
/home/user/.var/app/com.bitwarden.desktop/data/
-
Environment:: Variables :
BITWARDEN_SSH_AUTH_SOCK=/home/user/.var/app/com.bitwarden.desktop/data/.bitwarden-ssh-agent.sock
私の環境では、環境変数BITWARDEN_SSH_AUTH_SOCK
の設定もしないとソケットが作成されなかった。また、このパスも~/
を使うと上手く行かなかったのでフルパスで指定した。
しかし、SSH認証ソケットが作成されたとしても、それでも作動しない。アプリが起動していないと接続拒否(、ロック解除してたとしてもフェッチエラー…
本来は、アプリが起動していれば、ロック解除のダイアログが表示されるはずだし、ロック解除後は、認証許可のダイアログが表示される。
$ export SSH_AUTH_SOCK=/home/arimasou16/.bitwarden-ssh-agent.sock
$ ls -l /home/arimasou16/.bitwarden-ssh-agent.sock
srw------- 1 arimasou16 arimasou16 0 3月 30 06:32 /home/arimasou16/.bitwarden-ssh-agent.sock
$ ssh-add -L #Bitwarden未起動
Error connecting to agent: Connection refused
$ ssh-add -L #ロック解除後
error fetching identities: communication with agent failed
近い内に修正されるだろうが、AppImageを使うことにした。
クリップボードからのキーをインポートが上手くいかない
多くの人は、いきなりbitiwardenで秘密鍵を作って運用しするよりも、既存の秘密鍵を使おうとするだろうが、それが上手くいかない。正しくパスフレーズを入力しないとインポートできないので、正しくインポートできているかと思ったら、何度やっても失敗する。
@Roan-V Likely if your SSH private key file is encrypted with a passphrase, whereas upon import to Bitwarden the private key remains unencrypted leading to the differences seen
どう回避するか分からなったが、最初の投稿のFUNCTIONING WORKFLOWに書いてあった。
- SSH新規作成
cat id_ed25519 | xsel --clipboard --input
などして秘密鍵をクリップボードにコピーする- “クリップボードからのキーをインポート"を押す
- パスワードを確認にパスフレーズを入力する
cat id_ed25519 | xsel --clipboard --input
などして秘密鍵をクリップボードにコピーする- “インポート"ボタンを押す
- 秘密鍵、公開鍵、フィンガープリントなどが更新されたのを確認する
- 保存する
これで、既存の秘密鍵が使える。パスフレーズは不要となる(しかし、当然、Bitwardenでのロック解除、認証許可が必要となる)。

$ ssh-add -L
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN9pPLbplfC+0VjkO/2Ou5050jdkVZvEJPxCDrh237YI github
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKGC4BbJLlkP7FJxVvX+VAxK0nlvT3hPZfXzwr8K8Xjg Ubuntu Server
Github
Githubで使用する秘密鍵の作成は公式どおりで上手くいく。
- “Add new SSH Key"画面を表示する
- Key type を
Authentication Key
を選択 - Bitwardenの公開鍵をコピーする
- Key入力欄に公開鍵を貼り付ける
- “Add SSH key"ボタンを押下する

そして、git設定を更新する。
$ git config --global gpg.format ssh
$ git config --global user.signingkey "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN9pPLbplfC+0VjkO/2Ou5050jdkVZvEJPxCDrh237YI"
$ cat ~/.gitconfig
[user]
name = arimasou16
email = example@test.com
signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN9pPLbplfC+0VjkO/2Ou5050jdkVZvEJPxCDrh237YI
[gpg]
format = ssh
そして、~/.ssh/config
の設定から秘密鍵を指定したりしている場合、削除する。
Host server
HostName 192.168.0.1
User arimasou16
- IdentityFile /home/arimasou16/id_ed25519
Port 22
- IdentitiesOnly yes
- AddKeysToAgent yes
-Host github github.com
- HostName github.com
- IdentityFile /home/arimasou16/id_rsa_github
- User git
- Port 22
- IdentitiesOnly yes # IdentityFile で指定した秘密鍵でのみ認証を試みる
- Compression yes # Git でのファイル転送時に圧縮する
インポートで失敗してたり、~/.ssh/config
の変更せずに認証しようとすると…githubでは以下のメッセージが表示された。
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
[arimasou16@pop-os:~/git]$
サーバーへのログインでは、となる。ssh -v server
してデバック表示することでどう失敗したのか分かる。
debug1: No more authentication methods to try.
arimasou16@ubuntu: Permission denied (publickey).
成功する場合、以下のようなメッセージが表示される。
debug1: Offering public key: /home/arimasou16/Nextcloud/id_ed25519 ED25519 SHA256:zDXvpBeAbOOivsqGercM4Tzz38x25A93zBcLrn6tK9o explicit
debug1: Server accepts key: /home/arimasou16/Nextcloud/id_ed25519 ED25519 SHA256:zDXvpBeAbOOivsqGercM4Tzz38x25A93zBcLrn6tK9o explicit
Enter passphrase for key '/home/arimasou16/id_ed25519':
debug1: could not add identity to agent: /home/arimasou16/id_ed25519 (-27)
Authenticated to ubuntu ([ubuntu]:22) using "publickey".
AddKeysToAgent yes
にしても良くも悪くも、Bitwardenでの認証許可ダイアログが出るのが面倒といえば、面倒だが、各端末ごとに秘密鍵を保持してなくて済むのはありがたい。