Zenn
🔐

BitwardenでSSH鍵を管理する(Vaultwarden)

2025/03/21に公開

やること

sshやgitのコミットなどで秘密鍵の管理に悩んでませんか?🤔

ついに、BitwardenでSSH鍵管理機能(ssh-agentの代わりとして動作)を使えるようになったので、使い方をまとめます。
(主にここではVaultwardenをセルフホストしている方向けの説明ですが、内容は通常のBitwardenと変わりません)

Bitwardenの公式サーバーでは既に対応し、1月より順次展開されているようです。

https://github.com/dani-garcia/vaultwarden/pull/5187
https://bitwarden.com/help/releasenotes/#2025-1-1

環境

クライアント側

  • Windows 11
  • Bitwarden デスクトップ版 2025.2.1 (2025.1.2以降なら対応)

サーバー側

  • Oracle Linux 8
  • Vaultwarden 1.33.2 (Docker運用)

サーバー側の設定(Vaultwarden使用時)

Vaultwardenを使っている場合、サーバー側の設定からクライアント側の機能を有効化させる必要があります。(25/3/21現在)
(ただ、こうした設定は将来的には不要になると考えられます)

フラグの有効化

環境変数に実験的機能フラグ(EXPERIMENTAL_CLIENT_FEATURE_FLAGS)を追記します。

フラグとしてssh-key-vault-item及びssh-agentを有効化する必要があります。(カンマ,で複数指定)

.env
EXPERIMENTAL_CLIENT_FEATURE_FLAGS=ssh-key-vault-item,ssh-agent

参考

https://github.com/dani-garcia/vaultwarden/blob/main/.env.template#L344-L360

サーバーの再起動&反映の確認

環境変数を変更後、サーバーの再起動が必要です。

その後、管理画面を有効化している場合は、管理画面でログイン後、
Readonly Config->Customize the enabled feature flags on the clientsssh-key-vault-item,ssh-agentが含まれていればサーバー側の対応は完了です。

使い方

下準備

Windows (環境によっては必要なし)

Bitwardenは標準のssh-agentを置き換えるため、OpenSSHが有効になっていると、認証がそちらにとられる場合があります。そのため、無効化する必要があります。

検索窓で サービス と入力するか、[Windows]+[R]しservices.mscと入力+Enterで、サービスを開きます。

サービス一覧の中からOpenSSH Authentication Agentを無効化してください。

https://bitwarden.com/help/ssh-agent/#tab-windows-6VN1DmoAVFvm7ZWD95curS

MacOS

所有していないので、方法は公式から。悪しからず。

以下のコマンドでBitwarden SSH Agentを有効化します。

Bitwarden(App Store版)をApp Storeからインストールした場合
export SSH_AUTH_SOCK=/Users/<user>/Library/Containers/com.bitwarden.desktop/Data/.bitwarden-ssh-agent.sock
Bitwarden(.dmg版)を公式サイトからインストールした場合
export SSH_AUTH_SOCK=/Users/<user>/.bitwarden-ssh-agent.sock

#または
launchctl setenv "SSH_AUTH_SOCKET" "/Users/<user>/.bitwarden-ssh-agent.sock"

https://bitwarden.com/help/ssh-agent/#tab-macos-6VN1DmoAVFvm7ZWD95curS

Linux

https://bitwarden.com/help/ssh-agent/#tab-linux-6VN1DmoAVFvm7ZWD95curS

SSH エージェントの有効化

サーバー側で対応している場合、Bitwardenの設定画面に Enable SSH Agent(SSHエージェントを有効にする) という設定が現れます。

有効化することで、Bitwardenがssh-agentssh-addとして動作するようになります。

SSH鍵の追加

項目の種類の中に新しくSSH鍵が追加されます。

この状態で項目を新規作成すると、自動的に新しいSSH鍵が作成されます。

通常のログイン情報と同じようにフォルダー管理やファイル添付などができます。必要に応じて、パスワードの再要求なども設定可能です。

既存のSSH鍵を取り込む

上記のように、SSH鍵を追加する画面に行ってください。

取り込みたい鍵の秘密鍵をコピーした上で、Import key from clipboard(クリップボードから鍵をインポート) を選択すると既存の鍵を取り込めます。

ssh-agentの確認

以下のコマンドで、Bitwardenで登録した鍵が表示されればOKです。

ssh-add -l

SSH鍵で公開鍵認証する

基本的に意識する必要はありません。Bitwardenがssh-agentとして置き換わる形で署名を行うためです。

ロック時は、ロックを解除するようにBitwardenが起動します。
ロック解除時は、Bitwardenに以下の承認画面が現れ、承諾すると自動的に認証されます。

使用例: sshコマンド

ssh your_name@192.168.10.123

使用例: sshターミナル

sshターミナルなどを使用している場合は、対応していれば認証方法としてsshエージェントを指定することで、秘密鍵やパスフレーズを設定することなくリモートサーバーに接続できます。

その他

Githubの公開鍵なども管理できます。詳しい方法は公式サイトにあるのでご参考に。

https://bitwarden.com/ja-jp/help/ssh-agent/#use-ssh-key-to-authenticate-with-git

また、1Passwordにも同様の機能があり、問題や不具合などは同様の対処法が参考になると思われます。
https://developer.1password.com/docs/ssh/agent/compatibility/

まとめ

Bitwardenに面倒な秘密鍵管理を任せて幸せになりましょう。

参考

https://bitwarden.com/ja-jp/help/ssh-agent/
https://idpea.org/blog/bitwarden-vaultwarden-ssh-keys/
https://github.com/dani-garcia/vaultwarden/discussions/5158

Discussion

ログインするとコメントできます