@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シェル暗号化を得ることができないことを意味します。
バックアップスクリプトを実行し、リモートサーバーでコマンドを実行してこれを確認しましたwho
。ssh-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
それが何をすると思うかは言いません。who
(w
他の選択肢と同様に)対話型セッションのみが一覧表示され、ssh
rsyncデーモンを起動するために使用されるセッションは対話型ではないため(またはシェルをまったく使用しないため)ここには表示されません。マニュアルで説明されているタスクを実行するためにrsyncを信頼しない場合は、ps -efH
View sshセッションとリモートシステムで実行されているrsyncデーモンを使用して、ss -t
ポート22のSSH以外のシステム間にTCP接続がないことを確認できます。strace
rsync プロセスで、rsync プロセスと ssh プロセス間の通信を確認します。