🐷

Keepass2Android と KeepassXCをGoogle Driveで同期する時の注意点

に公開

tl;dr

https://github.com/PhilippC/keepass2android/issues/882#issuecomment-2184730803
このコメントにあるように、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