最近はEdgeでのパスワード管理をやめて,全部Bitwardenで統一している.大体のブラウザで対応しているほか,パスワードだけではなくssh-keyなども管理することができたり完全無料であったりと最強すぎるパスワードマネージャーだと思う.
しかし無料であるが故に突然サービスが終了したりしても文句が言えない.そのため何かあった時のためにバックアップ手段が欲しかった.そこでどうやらbitwardenにはcliバージョンがあるらしいので,今回はこれを使って自動バックアップを構築していこうと思う.
bitwarden-cliの設定
bitwarden-cliをbrewでインストールする
brew install bitwarden-cli
([[#^0394f8]]にはbrewでインストールできるとは書いてなかったけど,いけた)
vaultにログインする.
bw login
そうするとセッションキーがもらえる.認証が必要な操作ではこのセッションキーをコマンドに添える必要があるみたい.
そのため,セッションキーは控えておく.
(環境変数にセットする事をお勧めしてるけど,そうすると簡単に外部プログラムで抜き取られてしまうのでは?と思うけどどうなんだろう???)
バックアップの設定
実際にバックアップを行ってみる
[[#^125dbd]]によると,コマンドのオプションは以下の通り.
bw export [--output <filePath>] [--format <format>] [--password <password>] [--organizationid <orgid>]
これでバックアップ取ってみる
bw export --format json --session <さっき控えたセッションキー>
できた.
--format encrypted_json
ていうオプションをつけると,暗号化することもできるみたい.復号するにはアカウントに紐づけられてる暗号化キーを用いるらしい.
(マスターパスワードを変更しても,このキーは変わらないみたい.もちろん変更することもできる.)
cronで自動化
バックアップができたので,これをcronを使って自動化していきます
まずはwhich bw
を実行して,bwのバイナリの場所を控えておく.
homebrew経由だったら/opt/homebrew/bin/bw
かな
crontab -e
でcronの設定を行う.
6時間おきに設定する.
0 */6 * * * cd <保存先>; <さっき控えたbwのパス> export --format json --session <セッションキー>
設定できたら,:wq
を押して保存.
自分の場合はこんな感じになった.
0 */6 * * * cd /Users/takuto1127/Documents/bw; /opt/homebrew/bin/bw export --format json --session CP+IMvhmrqJBVZ8hKXQpNEBk5RWpOqp5508vCqEqmBjtzjA9D8uQDkMcXxeWBSl97TgVrZd9i+bp9KKfNIeXGg==
cronはmacがスリープの時は動作しないので注意.使用頻度が少ない場合は頻度を1時間おきにするなどをおすすめする
参考
- https://bitwarden.com/help/cli/ ^0394f8
- https://bitwarden.com/help/cli/#export ^125dbd
コメント