🐷
Keepass2Android と KeepassXCをGoogle Driveで同期する時の注意点
tl;dr
このコメントにあるように、KeepassXCのファイルの保存方法を変えるとKeepass2Androidでもうまく同期される。
経緯(背景)
KeepassのDBファイル(kdbx)を複数のプラットフォームで同期したかった e.g. Windows, macOS, Android, iOS (iPadOS).
それぞれのプラットフォームで使うクライアント
- Windows: KeepassXC
- macOS: KeepassXC
- iOS: Keepassium
- Android: Keepass2Android
Windows, macOS ではGoogle Driveのデスクトップクライアントを使いKeepassiumではGoogle Driveのファイルを開く機能があったので問題なく同期できた。
Keepass2AndroidもGoogle Driveのファイルを開くことができるのだが、デスクトップクライアントから変更を加えると"<kdbxファイル名> is trashed"というメッセージが一瞬でる。前述のものは一種のエラーメッセージなので、その後はキャッシュされたDBを開いてしまう。つまり同期がうまくいっていない。
エラーの回避
"<kdbxファイル名> is trashed"というエラーはKeepass2Androidのissueに報告されており、KeepassXCのissueにリンクされている。
つまり
- KeepassXCを使い同時に
- Google Driveデスクトップクライアントで同期をしようとする場合
KeepassXCの設定内で
(日本語のUIだと)
「別の保存方法を使用する」にチェックを入れて、「一時ファイルを元の場所に移動する」を使うとうまく行く。
蛇足
以下うまくいかない話。
システムのファイルピッカーでもGoogle Driveのファイルを開けるのでこの方法で同期できるような記載もある。
実際にK2A内でも「Google Driveを開こうとしてうまくいかないならfile pickerでやれ」みたいなメッセージが出る。だが同期がうまくいった試しがない。
Discussion