SSHを介してRsyncデーモンを強制する

SSHを介してRsyncデーモンを強制する

@roaimaの洞察のおかげで、以下のリモートサーバーバックアップスクリプトが実際に私が望むようにSSH暗号化を使用しないことがわかりました。

私のrsyncコマンドはここにある例に基づいています。
https://www.man7.org/linux/man-pages/man1/rsync.1.html

rsync -av -e "ssh -l ssh-user" rsync-user@host::module /dest

ただし、現在のバックアップスクリプトの実行時に実際に発生する状況は次のとおりです。

1.) 指定されたユーザーとして ssh に接続し、
2.) マイログイン通知スクリプトが電子メールで ssh ユーザーのログインを確認します (接続解除/再接続時に繰り返し),
3.)質問:rsyncデーモンが接続されて作業を実行します。-外部-これは実際に私が望むSSHシェル暗号化を得ることができないことを意味します。

バックアップスクリプトを実行し、リモートサーバーでコマンドを実行してこれを確認しましたwhossh-backup-user-いいえ-rsyncデーモンの実行中にサーバーに接続します。

現在のバックアップスクリプト(root以外のユーザーとして実行する必要があります)

#!/bin/bash
while [ 1 ]
do
     rsync -avxP --delete --append --checksum --timeout=180 --bwlimit=150 --rsync-path="sudo rsync" --log-file=/var/log/rsync.log --password-file=/etc/rsyncd.passwd -e "ssh -l backup-user" 111.22.333.444::data /media/user/WebMade/Server-Backups/Prod/today/
    if [ "$?" = "0" ] ; then
        echo "rsync completed normally"
        exit
    else
        echo "Rsync failure. Backing off and retrying..."
        sleep 10
    fi
done
#EOF

たぶん誰かが何が起こっているのかを明確にすることができます。私がマニュアルページを誤って理解した(またはおそらく:-/)、提供された例は間違っています。

ありがとう

ベストアンサー1

すべてが大丈夫です。ここでは問題ありません。

ここにある他の答えは部分的に間違っており、部分的に欠点がありません。あなたがしたことは、SSH接続を介してrsyncデーモンを作成して通信するための正しい文書化された方法です。このパターンに慣れていない人は、「」というrsyncマニュアルを確認することをお勧めします。リモートシェル接続によるRSYNC-Daemon機能の使用」。

--rshまたは、ダブルコロン構文と組み合わせ-eて設定すると、このモードが有効になります。その後、RsyncはSSHを使用してリモートシステムに接続し、そこから(SSHセッションの下で)デーモンを作成し、SSHトンネルを介して通信します。 SSH認証と暗号化でデーモン専用機能を使用できるため、非常に便利なモードです。ssh::

whoそれが何をすると思うかは言いません。whow他の選択肢と同様に)対話型セッションのみが一覧表示され、sshrsyncデーモンを起動するために使用されるセッションは対話型ではないため(またはシェルをまったく使用しないため)ここには表示されません。マニュアルで説明されているタスクを実行するためにrsyncを信頼しない場合は、ps -efHView sshセッションとリモートシステムで実行されているrsyncデーモンを使用して、ss -tポート22のSSH以外のシステム間にTCP接続がないことを確認できます。stracersync プロセスで、rsync プロセスと ssh プロセス間の通信を確認します。

おすすめ記事