web-dev-qa-db-ja.com

rsyncのような暗号化されたバックアップを行う方法は?

データのバックアップをリモートサーバーに保存したいのですが、バックアップサーバーでデータが暗号化されていないことを確認したくありません。単一のファイルを編集してバックアップしても、すべてが暗号化されて再度送信されることはありません。リモートサーバーは、ディレクトリ構造(特にディレクトリ名)さえ知らないことが望ましいです。

そのような解決策はありますか?

39
user67194

最善の方法は Duplicity です。唯一の欠点は、ハードリンクを処理しないことです。

別の解決策は Tartarus で、GPGとFTP/SSHを介してバックアップサーバーに直接パイプすることができます。増分を行います。

これが ドイツ語でのタルタルスの指示 です。

25
Gunstick

rsyncrypto が気に入ると思います。

Rsyncryptoを使用して、ローカルに保持するキーを使用して、プレーンテキストディレクトリから暗号化ディレクトリにファイルを暗号化し、暗号化ディレクトリとプレーンテキストディレクトリからファイルを復号化します。

暗号化されたディレクトリとリモートホストの間で同期するには、rsyncを使用します。

Sourceforgeからダウンロードできるrsyncrypto実装は、バイト単位の変更だけでなく、挿入や削除も処理します。

Rsyncryptoを使用すると、すべての暗号化キーがローカルコンピューターを離れることはありません。

「リモートサーバーは、ディレクトリ構造さえ知らないほうがよい」

その場合は、--name-encrypt=mapオプション。これにより、暗号化された各ファイル名はランダムな文字列になり、デフォルトではすべてのマングルされたファイル名が単一のディレクトリに保存されます。実際のファイル名とフォルダ名は、「filemap」という名前の(暗号化された)ファイルに保存されます。

関連: "暗号化されたバージョン管理システムはありますか?"

9
David Cary

近年、 Rclone が開発されました。そのモットーは「クラウドストレージのrsync」ですが、S3/Azure/Googleなどの機能を超えています。クラウドストレージプロバイダーは、ローカルターゲットとSSH/SFTPターゲット間の同期もサポートします。

構成する「リモート」には、その周りに crypt ラッパーを追加することもできます。これは元のリモートとして機能しますが、すべてのファイルのコンテンツ(およびオプションでファイル名自体)はクライアント側で暗号化されます。アルゴリズムは文書化されており、これまでの私の経験では一般的にシームレスなプロセスでした。

1
natevw

Encfは「逆」モードで使用できます。これにより、ローカルフォルダの暗号化された「ビュー」が提供されます。次に、暗号化されていないデータの代わりにこの暗号化されたビューをrsyncします。これにより、データの暗号化されたコピーがなくても、rsyncのすべての利点が得られます。

1
Michael Wyraz

tarsnap はそれを行いますが、リモートサーバーを制御しません。この目的は(有料)サービスとしてのみ利用可能です。ただし、要件には応えます。

0
Bruno Rohée

Googleドライブの代わりに暗号化されたrsyncのようなバックアップを検索する場合は、 https://github.com/HolgerHees/cloudsync を試すことができます。

0
holger