感谢 @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
Run Code Online (Sandbox Code Playgroud)
然而,当我当前的备份脚本执行时实际发生的是:
1.) 它以指定用户的身份连接到 ssh,然后
2.) 我的登录通知脚本通过电子邮件确认 ssh 用户的登录(在断开连接/重新连接时重复),
3.)问题:rsync 守护进程连接并执行其操作ssh shell之外的业务,这意味着我实际上没有获得我想要的 ssh shell 加密。
我通过执行备份脚本,然后在远程服务器上执行命令来验证这一点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 …
Run Code Online (Sandbox Code Playgroud)