我正在尝试在ssh隧道上设置自动rsync备份(使用cron)但是收到错误“连接到远程主机关闭的localhost。”。我正在运行Ubuntu 12.04。我搜索过帮助并尝试了很多解决方案,例如将ALL:ALL添加到/etc/hosts.allow,在sshd_config中检查#MaxStartups 10:30:60,在sshd_config中设置UsePrivilegeSeparation no,创建/ var / empty / sshd但是没有人解决这个问题。
我正在运行autossh以确保隧道始终存在:
autossh -M 25 -t -L 2222:destination.address.edu:22 pbeyersdorf@intermediate.address.edu -N -f
这似乎运行正常,我已经能够将隧道用于各种rsync任务,事实上我第一次通过cron运行以下rsync任务时成功了:
rsync -av --delete-after /tank/Documents/ peteman@10.0.1.5://Volumes/TowerBackup/tank/Documents/
包含每个文件的状态和输出
sent 7331634 bytes received 88210 bytes 40215.96 bytes/sec
total size is 131944157313 speedup is 17782.61
自从第一次成功以来,每次尝试都给了我以下输出
building file list ... Connection to localhost closed by remote host.
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]
较小子目录的rsync操作按预期工作。我对任何可能出现问题的想法表示感谢。
答案 0 :(得分:0)
似乎问题与autossh有关。如果我通过ssh而不是autossh创建我的隧道,它工作正常。我怀疑我可以调整影响autossh配置的环境变量,但出于我的目的,我通过将rsycn命令包装在首先通过ssh打开隧道的脚本中解决了问题,执行备份然后杀死ssh隧道,从而无需使用autossh创建的始终打开的隧道:
#!/bin/sh
#Start SSH tunnel
ssh -t -L 2222:destination.address.edu:22 pbeyersdorf@intermediate.address.edu -N -f
#execute backup commands
rsync -a /tank/Documents/ peteman@localhost://Volumes/TowerBackup/tank/Documents/ -e "ssh -p 2222"
#Kill SSH tunnel
pkill -f "ssh.*destination.address"