语境

语境

语境

我正在编写同步脚本来同步一些网络环境。

例如:从生产更新集成(主要是为了获取新的数据库行和上传的文件)

我的一些先决条件是:

  • 开发人员将从集成服务器使用此脚本
  • 需要 DSA 密钥才能连接到生产服务器
  • 集成服务器无法存储开发者的私钥

问题

我希望开发人员连接到集成,以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)

我尝试像这样将远程 shell 指定给 rsync:

rsync -e "ssh -A" user@production

但没有运气。

答案1

好的,我的问题是我在非标准端口上“SSHing”,并且我试图通过--port=选项告诉 rsync。

我使用rsync -e "ssh -p 1337" user@host:somepath/ .它来代替,并且它开箱即用。

相关内容