Google Driveで同期する方法
このガイドでは、Google Driveクラウドストレージを使って、KeePassiumのデータベースを他のデバイスと同期する方法を説明します。
KeePassiumは、Google Driveに対して2つの同期方法をサポートしています。
- 直接接続 — より信頼性が高い
- iOSファイルアプリとの連携 — 設定が簡単
方法1: 直接接続
この方法では、KeePassiumはGoogleのサーバーと直接通信します。アプリがデータ転送を完全にコントロールでき、他のアプリに依存しません。そのため、直接接続はファイルアプリ経由よりも信頼性が高くなります。
Google Driveからデータベースを同期するには、次の手順に従ってください。
- データベース 画面に移動します
→ サーバーに接続 をタップします
- 確認された場合は、ネットワークアクセスを許可してください。
- クラウドストレージの種類を選択します
- KeePassiumがクラウドアカウントへのログインを求めます
- データベースファイルまで移動して選択します
プライバシー
Googleにサインインすると、今後の接続を可能にするアクセストークンがKeePassiumに渡されます。アプリがGoogleアカウントのパスワードを見たり保存したりすることはありません。
方法2: iOSファイルアプリとの連携
この方法では、KeePassiumはオフラインで動作し、同期をGoogle Driveアプリに委ねます。設定は簡単ですが、直接接続の方法よりも信頼性は劣ります。
- Google Driveアプリをインストールし、アカウントにログインします
- KeePassiumを開き、データベース画面に移動します(必要に応じて 戻る をタップ)
→ データベースを開く をタップします
- Google Driveがリストに表示されない場合は、表示されるように設定します
- データベースファイルを選択します
トラブルシューティング
オフラインで動作しない
Google Driveは、データベースファイルを「オフラインで使用可能」にしていても、オフラインでは動作しません。
データベース選択時に「サポートされていないファイル形式」と表示される
これはGoogle Driveのプライバシー画面が原因です。この機能は、KeePassiumなど他のアプリからのファイルアクセスをブロックします。KeePassiumでファイル選択ダイアログを開くと、システムは「認証が必要です」と表示します。そのダイアログで「Google Driveを開く」をタップすると、KeePassiumからGoogle Driveアプリに切り替わります。そこでデータベースを選択すると、Google Driveは.kdbxファイルを認識できないと表示します。
解決策は、Google Driveの設定でプライバシー画面をオフにすることです。
Google Driveが応答しない
これは、データベースをKeePassiumに追加した後で、Google Driveのプライバシー画面を有効にした場合によく発生します。プライバシー画面は、他のアプリからGoogle Driveのファイルへのアクセスをブロックします。その結果、KeePassiumがデータベースを読み取ろうとしても、Google Driveが応答しなくなります。
解決策は、Google Driveの設定でプライバシー画面をオフにすることです。
共有ファイルに関する制限
Google Driveは共有ファイルをファイルアプリに公開しないため、KeePassiumに直接追加することはできません。
部分的な回避策: Google Driveアプリ → 共有中 → 該当の共有ファイルの → ドライブへのショートカットを追加。これにより、データベースがファイルシステム、ファイルアプリ、KeePassiumからアクセス可能になります。ただし、ショートカットは読み取り専用のようで、KeePassiumからデータベースを保存することはできません。
Google Drive上のFUSEファイルシステム(google-drive-ocamlfuse)
google-drive-ocamlfuseをKeePassXCと併用している場合、KeePassiumが「Google Driveが応答しない」と頻繁に報告することがあります。詳細な診断情報を見ると、データベースファイルが削除されたと表示されます。
Error Domain=NSCocoaErrorDomain
Code=4101 "Couldn't communicate with a helper app"
UserInfo={
NSUnderlyingError=0x1234ABCD {
Error Domain=trash
Code=0 "(null)"
}
}原因は、KeePassXCがデータベースを保存する際に、google-drive-ocamlfuseが新しいファイルIDを作成することにあります。KeePassiumは古い参照を使ってアクセスしようとするため、Google Driveは古いファイルが削除されたと報告します。
解決策は、~/.gdfuse/default/config を開いて mv_keep_target=true を設定することです。