Synology NAS を使って同期する方法
このガイドでは、Synology のネットワーク接続ストレージ(NAS)を使って、KeePassium のデータベースを他のデバイスと同期する方法を説明します。
KeePassium は Synology NAS に対して 2 つの同期方法をサポートしています。
- WebDAV による直接接続 — より信頼性が高い
- iOS ファイルアプリとの連携 — 設定が簡単
方法 1: WebDAV による直接接続
この方法では、KeePassium が WebDAV プロトコルを使って Synology サーバーと直接通信します。
詳しくは Synology のドキュメントを参照してください: WebDAV を使用して Synology のファイルにアクセスする
方法 2: iOS ファイルアプリとの連携
- Synology DS file アプリをインストールし、認証情報を入力します
- KeePassium を開き、データベース画面に移動します(必要に応じて 戻る をタップ)
→ データベースを開く をタップします
- リストに DS file が表示されない場合は、表示されるように設定します
- データベースファイルを選択します
トラブルシューティング
Synology Drive のキャッシュが更新されない
Synology Drive アプリ(DS file ではなく)経由で追加したデータベースは、自動的にダウンロード/アップロードされないことがあります。そのため、サーバー上で変更が行われても、その変更が KeePassium から見えない場合があります。逆に KeePassium 側で変更した場合も、Synology Drive が変更を検知せず、ファイルをアップロードしないことがあります。これは Synology Drive アプリ側の問題です。
このバグは 2020 年 8 月に Synology へ報告済みです(チケット番号 #2604475)。同社は問題を認めています:
さらに調査したところ、iOS のファイルアプリで Drive 上のファイルを閲覧する際に、ファイルの最新バージョンが表示されないことがあると、当社の開発者が確認しました。
現在、修正に取り組んでおり、後日リリースされる予定です。
解決策として、代わりに DS file アプリまたは WebDAV による直接接続をご利用ください。
DS file はオフラインでは動作しない
DS file アプリは、サーバーへのネットワーク接続が必要です。NAS が利用できない場合、KeePassium は数秒後に接続の試行をキャンセルします。
NAS が利用できないときでもデータベースにアクセスしたい場合は、DS file の使用をやめて、WebDAV による直接接続を使うのが最善の方法です。
認識できないデータベース形式
Synology NAS からデータベースを読み込めず、ログに次のエラーが記録されることがあります:
Unrecognized database format [firstBytes: 7b226572726f7222]
このエラーは、Synology 側の 2 つのバグ(チケット番号 #2591926 として報告済み)が原因です:
- DS file が NAS に接続すると、モバイルアプリにはランダムな
session_id値が割り当てられます。約 1% の確率で、このパラメータが数字で始まります。アプリはその後のリクエストでこの値を適切にエスケープしないため、サーバーは session_id を解析できず、エラーコード 119 を返します。 - エラーコード 119 は Synology の API ドキュメントに記載されていません。そのため DS file アプリはこのエラーを適切に処理できず、エラーメッセージを実際のファイル内容とみなしてしまうようです。つまり、KeePassium は
{"error":{"code":119},"success":false}という内容をデータベースとして受け取ることになります — 当然、有効なデータベースではありません。
このエラーの回避策は 3 つあります:
- データベースを KeePassium に再追加する。DS file にサーバーへの再ログインを強制し、新しい(おそらく有効な)
session_id値を生成させるためです。 - デバイスの Wi-Fi 接続をオフにして 1 分ほど待ち、再びオンにする。これで NAS が再び利用可能になるはずです。(理由は上記と同じです。)
- 長期的な解決策としては、WebDAV による直接接続で NAS に接続してください。