ant <scp> 支持 ssh-agent

Be *_*ers 5 ssh ssh-agent ant

我有一个使用 scp 的现有 build.properties 文件,如下所示:

<scp todir="${linux.user}@${linux.site}:@{todir}" keyfile="${ssh.keyfile}" passphrase="${ssh.passphrase}" trust="yes" verbose="@{verbose}">
   <filestocopy />
</scp>
Run Code Online (Sandbox Code Playgroud)

该命令的文档在这里:https : //ant.apache.org/manual/Tasks/scp.html

我想转向 ssh-agent 并删除密码。一些使用它的人将他们的 ssh 配置为不使用密码并将密码留空。

一种替代方法是使用http://www.jcraft.com/jsch-agent-proxy/,但我发现这个 1.5 年前的问题表示尚不支持:

/sf/ask/1377901661/

这在许多 ant 脚本中使用,所以我需要一个计划,允许我使用 ssh-agent,同时仍然允许其他人继续使用他们的方法。

我在 Windows 7 上尝试将文件 scp 到 Linux。我有一个兼容 Pageant 的 ssh-agent:KeePass2/KeeAgent。

小智 2

完全是你所要求的,但我已经通过使用exec 任务解决了我的类似问题(在 OS X 上的 Maven Antrun 插件中) 。因此,您可以使用类似的东西来替换您拥有的东西:

\n\n
<exec executable="pscp">\n   <arg value="dirtocopy"/>\n   <arg value="-r"/>\n   <arg value="-i"/>\n   <arg value="${ssh.keyfile}"/>\n   <arg value="${linux.user}@${linux.site}:@{todir}"/>\n</exec>\n
Run Code Online (Sandbox Code Playgroud)\n\n

当然这并不理想。对于跨平台支持,您需要每个人都安装 SCP 实现,并且您需要条件scp在 *nix 上和pscp/或 Windows 上进行选择。

\n\n

然而它有一些优点 \xe2\x80\x93ssh-agent集成可以正常工作(根据您最初的请求),并且您可能不需要-i我为了完整性而包含的参数。

\n\n

警告:我还没有使用 PuTTY 套件或在 Windows 上实际测试过这一点

\n