synology NAS 間の部分的な rsync:パスワードなしで

割とプライベートな内容が主の DS 718 とライベートな内容がほとんどない DS 720 間で共有フォルダの部分的な rsync をします。パスワードを入力せずにタイムスケジュールで実行したいと思います。

クライアント:DS 718(192.168.0.18) — /volume/web/jstree/data/netTV
      
サーバー:DS 720(192.168.0.20) — /volume/web/jstree/data/netTV

サーバーの /volume/web/jstree/data/netTV のデータをクライアントの /volume/web/jstree/data/netTV に同期します。

鍵ペアの作成:クライアント DS 718 で

クライアント NAS 718 に ssh ログインします。


ssh heno@192.168.0.18 -p 11123

ssh-keygenコマンドで鍵ペアを作成します。


ssh-keygen -t ed25519 -N '' -C netTV_backup -f ~/.ssh/netTV_backup

パーミッションを設定します。


chmod 700 ~/.ssh
chmod 600 ~/.ssh/netTV_backup.pub

公開鍵をサーバー DS 720 に転送します。


scp -P 11123 ~/.ssh/netTV_backup.pub moheno@192.168.0.20:~/.ssh

鍵の設定:サーバー DS 720 で

サーバー側に ssh ログインします。


ssh moheno@192.168.0.20 -p 11123

公開鍵情報をauthorized_keys ファイルに統合します。


cd /home/user/.ssh
cat netTV_backup.pub >> authorized_keys

パーミッションを変更します。


chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
rm -f netTV_backup.pub

サーバー DS 720 の操作はここまでです。

なお、サーバー側の rsync サービスにチェックを入れておく必要があります。

クライアントから rsync

クライアントに ssh ログインします。


ssh heno@192.168.0.18 -p 11123

rsync します。


rsync -avzu -e 'ssh -p 11123 -i ~/.ssh/netTV_backup' moheno@192.168.0.20:/volume1/web/jstree/data/netTV /volume1/web/jstree/data

-e がないとエラーになります。

以下のようなシェルスクリプトを作成して、それをタイムスケジュールで動かします。


#!/bin/sh

rsync -avzu -e 'ssh -p 11123 -i ~/.ssh/netTV_backup' moheno@192.168.0.20:/volume1/web/jstree/data/netTV /volume1/web/jstree/data

rsync を有効にするのはサーバー側

クライアント側では rsync を有効にする必要はありません。

有効にするのはサーバーの方です。