我正在编写一个同步脚本来同步一些Web环境。
例如:从生产中更新集成(主要是获取新的数据库行和上传的文件)
我的一些先决条件是:
我希望开发人员连接到与ssh -A
集成,以允许脚本使用密钥连接到生产服务器:
+-------------+ SSH +-------------+ rsync +-------------+ | Developer | ---------> | Integration | --------> | Production | | computer | | Platform | <-------- | platform | +-------------+ +-------------+ +-------------+ (priv DSA key) (pub DSA key) (pub DSA key)
它适用于ssh
或scp
,但我无法使rsync使用转发的密钥连接到生产服务器。
我看到类似的问题,但rsync从用户的计算机运行,因此ssh密钥文件可能由-i
选项指出。
我关心的不是密码相关,因为这个脚本将由真正的用户运行(不是cron)
我试图指定远程shellrsync像这样:
rsync -e "ssh -A" user@production
但没有运气。
好吧,我的问题是,我在非标准端口上“SSHing”,我试图通过--port=
选项来告诉rsync。
我使用rsync -e "ssh -p 1337" user@host:somepath/ .
相反,它工作得很好,开箱即用。