KeePass を使う

パスワード管理はずっと Firefox のを使ってたんだけど、9月頃から KeePassXC を使い始めた。しばらく使ってみてそれなりに使えてるのでメモ。なお KeePass と KeePassXC の違いはよくわかってない。

KeePassXC はデータベースを開くためにパスワードだけじゃなくてキーファイルも必要とできるので、データベースファイルはクラウド上に置いて、キーファイルを Ubuntu やスマホのローカルに置くという構成にしてる。

Ubuntu 上で Firefox の abount:logins から「ログイン情報をエクスポート」で CSV で出力しておく。

KeePassXC のインストールと設定

Ubuntu で keepassxc をインストール:

% apt install keepassxc

アプリから KeePassXC を起動:

「CSVからインポートする」でエクスポートした CSV を選択。

データベース名を入力:

「データベースの資格情報」でパスワードを指定し、「保護を追加…」でキーファイルを追加する。キーファイルの追加はあとでもできる。

CSV フィールドの列の関連付けはこんな風にしたら良さそうな感じ?

ここで一旦 KeePassXC を終わらせる。ウィンドウを閉じただけだと終わってないので、メニューから「終了」を選ぶ。

Googleドライブ上にデータベースファイルを置く

Android でも使いたいので、データベースファイルを Google ドライブ上に置く。 Ubuntu で Google ドライブをマウントする方法はいくつかあるみたいだけど、rclone と systemd を使うのが一番良さそうだった。 rcloneでGoogleDriveとかDropBoxとかをお洒落にマウントする - おしゃれな気分でプログラミング を参考にした。というかそのまんま。

rclone をインストール:

% sudo apt install rclone

~/.config/systemd/user/home-tommy-gdrive.mount というファイルを次の内容で作成:

[Unit]
After=network-online.target
[Mount]
Type=rclone
What=drive:
Where=/home/tommy/gdrive
Options=vfs-cache-mode=full
[Install]
WantedBy=default.target

systemctl コマンドでマウントできる:

% systemctl --user start /home/tommy/gdrive

ちゃんとマウントできてる:

% mount | grep gdrive
drive: on /home/tommy/gdrive type fuse.rclone (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

マウントを解除するには systemctl で

% systemctl --user stop home-tommy-gdrive.mount

とやってもできるけど、umount の方が簡単:

% umount gdrive

自動的にマウントされるようにするには systemctl で:

% systemctl --user enable home-tommy-gdrive.mount

KeePassXC で作成したデータベースファイルをマウントしたディレクトリ配下にコピーして、次に KeePassXC を起動したときにそのファイルを指定すればOK。

スマホに Keepass2Android をインストール

Android 用の KeePass アプリはいくつかあるけど、Keepass2Android を使ってみた。

あらかじめ、上記で作ったキーファイルをどうにかして Android 上にコピーする。自分は家庭内NASがあるのでそれ経由でコピーした。Ubuntu と Android を USB ケーブルで接続してもコピーできると思う。 Google ドライブ使ってコピーしてもいいけど、データベースファイルとキーファイルが同じ場所に置いてあるとキーファイルを使ってる意味がないので、コピー後は Google ドライブ上から消しておくこと。

「ファイルを開く」から「Googleドライブ」を選択して、上で Google ドライブに置いたデータベースファイルを選択。

「マスターキーの種類を選択」で「パスワード+キーファイル」を選択し、パスワードとキーファイルを指定する。

Android の設定の「パスワードを管理」→「自動入力サービス」で Keepass2Android を選択する。

アプリでログインするときに Keypass2Android を使って自動入力できるようになる。

おわり

これでアカウントを Ubuntu から登録しても Android から登録しても両方から使えるようになった。ときどき Ubuntu から登録したアカウントが Android で見れないことがあるけっど、よくわかってない。データベースを開き直したら使える。

まだいまいち使い方がわかってないところはあるけど、なんとなく使えてるからまあいいかな〜。

Google ドライブが使えなくなるとパスワードが失われてしまうのはアレなので、定期的にローカルにバックアップするようにしてる。

年が明ける前に書いた。えらい!