我正在设置一个 crontab 服务器来运行多个作业,将文件从生产服务器复制到较低的环境服务器。
我需要 cron 服务器作业将文件从一台服务器复制到另一台服务器。这是我所拥有的。
ip已被修改
ssh -v -R localhost:50000:1.0.0.2:22 -i host1key.pem [email protected] 'rsync -e "ssh -i /home/ec2-user/host2key.pem -p 50000" -vuar /home/ec2-user/test.txt ec2-user@localhost:/home/ec2-user/test.txt'
我正在使用两个不同的 pem 密钥和用户。我认为这个命令可以工作,但我在调试日志中收到此错误。这里有更多内容,仅显示出错的部分。就连接[email protected]
成功了。但错误在1.0.0.2
:
debug1: connect_next: host 1.0.0.2 ([1.0.0.2]:22) in progress, fd=7
debug1: channel 1: new [127.0.0.1]
debug1: confirm forwarded-tcpip
debug1: channel 1: connected to 1.0.0.2 port 22
Host key verification failed.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
debug1: channel 0: free: client-session, nchannels 2
debug1: channel 1: free: 127.0.0.1, nchannels 1
Transferred: sent 5296, received 4736 bytes, in 0.9 seconds
Bytes per second: sent 5901.2, received 5277.2
debug1: Exit status 12
答案1
我有完全相同的问题。
为了让 RSYNC 执行您想要的操作,服务器 1.0.0.1 和 1.0.0.2必须他们之间有联系。这可能看起来并不明显,但事实上确实如此。
稍微读一下字里行间,我会不遗余力地发现 .1 和 .2 之间没有直接联系,而且也没有办法得到一个。
在这种情况下,我总是从 .1 中提取数据,然后将其推送到 .2。这使得它需要两个进程,并且需要两倍的时间。
希望这个答案能够帮助处于相同情况的其他人。
我花了几个月的时间试图弄清楚。也许这会节省你们中的一些人很多时间。
答案2
错误信息说明了问题所在
Host key verification failed.
您的密钥不正确,或者您尚未(以交互方式)确认它是正确的。