QA@IT
«回答へ戻る

オンラインマニュアル rsync(1) に少し除法があることを追記。

139
 
 ACL もバックアップ対象なら `--acls` オプションを、EA (拡張属性) も対象なら `--xattrs` オプションを追加してください。
 
-以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。
+以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。オンラインマニュアル rsync(1) の「USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION」に少し記述されています。

パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

また、authorized_keys を適切に設定すれば、ほかの回答にある「秘密鍵が流出してしまうと、いきなりログインして任意のプログラムが実行できてしまう」こともありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
ここでは鍵ペアを ~/etc/backup/id_rsa.rsync* に保存することとします。:

$ mkdir -p -m 0755 ~/etc/backup
$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
...

バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル ~backup-user/.ssh/authorized_keys の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの ~/etc/backup/id_rsa.rsync.pub ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:

command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント

バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル ~backup-user/etc/rsyncd.conf の内容は次の通り:

[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは --rsh /usr/bin/ssh ... を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 [ユーザー名@]ホスト名::モジュール名 とする点です:

$ rsync \
    --archive \
    --hard-links \
    --delete \
    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
    /path/to/src \
    backup-user@backup-host::backup-dir

ACL もバックアップ対象なら --acls オプションを、EA (拡張属性) も対象なら --xattrs オプションを追加してください。

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。オンラインマニュアル rsync(1) の「USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION」に少し記述されています。

パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

また、`authorized_keys` を適切に設定すれば、ほかの回答にある「秘密鍵が流出してしまうと、いきなりログインして任意のプログラムが実行できてしまう」こともありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
ここでは鍵ペアを `~/etc/backup/id_rsa.rsync*` に保存することとします。:

```
$ mkdir -p -m 0755 ~/etc/backup
$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
...
```

バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル `~backup-user/.ssh/authorized_keys` の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの `~/etc/backup/id_rsa.rsync.pub` ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:

```
command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント
```

バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル `~backup-user/etc/rsyncd.conf` の内容は次の通り:

```
[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes
```

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは `--rsh /usr/bin/ssh ...` を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 `[ユーザー名@]ホスト名::モジュール名` とする点です:

```
$ rsync \
    --archive \
    --hard-links \
    --delete \
    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
    /path/to/src \
    backup-user@backup-host::backup-dir
```

ACL もバックアップ対象なら `--acls` オプションを、EA (拡張属性) も対象なら `--xattrs` オプションを追加してください。

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。オンラインマニュアル rsync(1) の「USING RSYNC-DAEMON FEATURES VIA A REMOTE-SHELL CONNECTION」に少し記述されています。

秘密鍵漏洩時のリスクが低いことを追記。

139
 パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。
 
+また、`authorized_keys` を適切に設定すれば、ほかの回答にある「秘密鍵が流出してしまうと、いきなりログインして任意のプログラムが実行できてしまう」こともありません。
+
 以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。
 
 まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。

パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

また、authorized_keys を適切に設定すれば、ほかの回答にある「秘密鍵が流出してしまうと、いきなりログインして任意のプログラムが実行できてしまう」こともありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
ここでは鍵ペアを ~/etc/backup/id_rsa.rsync* に保存することとします。:

$ mkdir -p -m 0755 ~/etc/backup
$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
...

バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル ~backup-user/.ssh/authorized_keys の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの ~/etc/backup/id_rsa.rsync.pub ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:

command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント

バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル ~backup-user/etc/rsyncd.conf の内容は次の通り:

[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは --rsh /usr/bin/ssh ... を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 [ユーザー名@]ホスト名::モジュール名 とする点です:

$ rsync \
    --archive \
    --hard-links \
    --delete \
    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
    /path/to/src \
    backup-user@backup-host::backup-dir

ACL もバックアップ対象なら --acls オプションを、EA (拡張属性) も対象なら --xattrs オプションを追加してください。

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

また、`authorized_keys` を適切に設定すれば、ほかの回答にある「秘密鍵が流出してしまうと、いきなりログインして任意のプログラムが実行できてしまう」こともありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
ここでは鍵ペアを `~/etc/backup/id_rsa.rsync*` に保存することとします。:

```
$ mkdir -p -m 0755 ~/etc/backup
$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
...
```

バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル `~backup-user/.ssh/authorized_keys` の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの `~/etc/backup/id_rsa.rsync.pub` ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:

```
command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント
```

バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル `~backup-user/etc/rsyncd.conf` の内容は次の通り:

```
[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes
```

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは `--rsh /usr/bin/ssh ...` を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 `[ユーザー名@]ホスト名::モジュール名` とする点です:

```
$ rsync \
    --archive \
    --hard-links \
    --delete \
    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
    /path/to/src \
    backup-user@backup-host::backup-dir
```

ACL もバックアップ対象なら `--acls` オプションを、EA (拡張属性) も対象なら `--xattrs` オプションを追加してください。

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

--acls, --xattrs オプションについて追記。

139
     backup-user@backup-host::backup-dir
 ```
 
+ACL もバックアップ対象なら `--acls` オプションを、EA (拡張属性) も対象なら `--xattrs` オプションを追加してください。
+
 以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
ここでは鍵ペアを ~/etc/backup/id_rsa.rsync* に保存することとします。:

$ mkdir -p -m 0755 ~/etc/backup
$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
...

バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル ~backup-user/.ssh/authorized_keys の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの ~/etc/backup/id_rsa.rsync.pub ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:

command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント

バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル ~backup-user/etc/rsyncd.conf の内容は次の通り:

[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは --rsh /usr/bin/ssh ... を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 [ユーザー名@]ホスト名::モジュール名 とする点です:

$ rsync \
    --archive \
    --hard-links \
    --delete \
    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
    /path/to/src \
    backup-user@backup-host::backup-dir

ACL もバックアップ対象なら --acls オプションを、EA (拡張属性) も対象なら --xattrs オプションを追加してください。

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
ここでは鍵ペアを `~/etc/backup/id_rsa.rsync*` に保存することとします。:

```
$ mkdir -p -m 0755 ~/etc/backup
$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
...
```

バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル `~backup-user/.ssh/authorized_keys` の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの `~/etc/backup/id_rsa.rsync.pub` ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:

```
command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント
```

バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル `~backup-user/etc/rsyncd.conf` の内容は次の通り:

```
[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes
```

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは `--rsh /usr/bin/ssh ...` を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 `[ユーザー名@]ホスト名::モジュール名` とする点です:

```
$ rsync \
    --archive \
    --hard-links \
    --delete \
    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
    /path/to/src \
    backup-user@backup-host::backup-dir
```

ACL もバックアップ対象なら `--acls` オプションを、EA (拡張属性) も対象なら `--xattrs` オプションを追加してください。

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

バックアップ元ホストでの鍵ペア作成手順を追加、ほか。

139
-いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。
+パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。
 
 以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。
 
-backup-host の SSH の公開鍵認証ログインを許可するファイル `~backup-user/.ssh/authorized_keys` の内容は次の通り (改行されて表示されるかもしれませんが、実際は一行で記述):
+まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
+ここでは鍵ペアを `~/etc/backup/id_rsa.rsync*` に保存することとします。:
 
 ```
-command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa バックアップ元実行ユーザーの公開鍵データ コメント
+$ mkdir -p -m 0755 ~/etc/backup
+$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
+...
 ```
 
-backup-host の backup-user の rsync デーモンの設定ファイル `~backup-user/etc/rsyncd.conf` の内容は次の通り:
+バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル `~backup-user/.ssh/authorized_keys` の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの `~/etc/backup/id_rsa.rsync.pub` ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:
 
 ```
+command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント
+```
+
+バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル `~backup-user/etc/rsyncd.conf` の内容は次の通り:
+
+```
 [global]
 ## root など chroot(2) を実行できる権限があるなら yes に設定
 use chroot = no
 
 以上で設定は完了です。
 
-バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは `--rsh /usr/bin/ssh` を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 `[ユーザー名@]ホスト名::モジュール名` とする点です:
+バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは `--rsh /usr/bin/ssh ...` を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 `[ユーザー名@]ホスト名::モジュール名` とする点です:
 
 ```
-$ rsync -aH --delete --rsh /usr/bin/ssh /path/to/src backup-user@backup-host::backup-dir
+$ rsync \
+    --archive \
+    --hard-links \
+    --delete \
+    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
+    /path/to/src \
+    backup-user@backup-host::backup-dir
 ```
 
 以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
ここでは鍵ペアを ~/etc/backup/id_rsa.rsync* に保存することとします。:

$ mkdir -p -m 0755 ~/etc/backup
$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
...

バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル ~backup-user/.ssh/authorized_keys の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの ~/etc/backup/id_rsa.rsync.pub ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:

command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント

バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル ~backup-user/etc/rsyncd.conf の内容は次の通り:

[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは --rsh /usr/bin/ssh ... を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 [ユーザー名@]ホスト名::モジュール名 とする点です:

$ rsync \
    --archive \
    --hard-links \
    --delete \
    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
    /path/to/src \
    backup-user@backup-host::backup-dir

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

パスフレーズなしの SSH 公開鍵を利用して、いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

まずはバックアップ元のホストでパスフレーズなしの SSH 鍵ペアを作成します。
ここでは鍵ペアを `~/etc/backup/id_rsa.rsync*` に保存することとします。:

```
$ mkdir -p -m 0755 ~/etc/backup
$ ssh-keygen -t rsa -N '' -f ~/etc/backup/id_rsa.rsync
...
```

バックアップ先 (backup-host) の SSH の公開鍵認証ログインを許可するファイル `~backup-user/.ssh/authorized_keys` の内容を次のように設定します。公開鍵データは先ほど作成した鍵ペアの `~/etc/backup/id_rsa.rsync.pub` ファイルの内容です。以下の設定例は改行されて表示されるかもしれませんが、実際は一行で記述してください:

```
command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty 公開鍵データ コメント
```

バックアップ先 (backup-host) の backup-user の rsync デーモンの設定ファイル `~backup-user/etc/rsyncd.conf` の内容は次の通り:

```
[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes
```

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは `--rsh /usr/bin/ssh ...` を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 `[ユーザー名@]ホスト名::モジュール名` とする点です:

```
$ rsync \
    --archive \
    --hard-links \
    --delete \
    --rsh '/usr/bin/ssh -i $HOME/etc/backup/id_rsa.rsync' \
    /path/to/src \
    backup-user@backup-host::backup-dir
```

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

回答を投稿

いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

backup-host の SSH の公開鍵認証ログインを許可するファイル ~backup-user/.ssh/authorized_keys の内容は次の通り (改行されて表示されるかもしれませんが、実際は一行で記述):

command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa バックアップ元実行ユーザーの公開鍵データ コメント

backup-host の backup-user の rsync デーモンの設定ファイル ~backup-user/etc/rsyncd.conf の内容は次の通り:

[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは --rsh /usr/bin/ssh を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 [ユーザー名@]ホスト名::モジュール名 とする点です:

$ rsync -aH --delete --rsh /usr/bin/ssh /path/to/src backup-user@backup-host::backup-dir

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。

いわゆる「rsync デーモン over SSH」を構成すればいいです。ほかの回答にあるような「バックアップ先のrsyncを実行するコマンドを調べる」必要はありません。

以下、バックアップ先のホストを backup-host、そのホスト上のバックアップ用ユーザーを backup-user とします。

backup-host の SSH の公開鍵認証ログインを許可するファイル `~backup-user/.ssh/authorized_keys` の内容は次の通り (改行されて表示されるかもしれませんが、実際は一行で記述):

```
command="/usr/bin/rsync --server --daemon --config=$HOME/etc/rsyncd.conf .",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa バックアップ元実行ユーザーの公開鍵データ コメント
```

backup-host の backup-user の rsync デーモンの設定ファイル `~backup-user/etc/rsyncd.conf` の内容は次の通り:

```
[global]
## root など chroot(2) を実行できる権限があるなら yes に設定
use chroot = no

[backup-dir]
## バックアップ先ディレクトリ
path = /srv/backup
## 書き込みを許可、読み出しを禁止
read only = no
write only = yes
```

以上で設定は完了です。

バックアップは、バックアップ元ホストのバックアップ実行ユーザーで次のようにして実行します。ポイントは `--rsh /usr/bin/ssh` を指定して SSH の利用を明示する点と、転送先を rsync デーモンに接続するときの形式 `[ユーザー名@]ホスト名::モジュール名` とする点です:

```
$ rsync -aH --delete --rsh /usr/bin/ssh /path/to/src backup-user@backup-host::backup-dir
```

以上の構成手順は rsync の付属マニュアルか何かに記載されていたような記憶があるのですが、今探してみたところ、見当りませんでした。