通过SSH连接进行Ant SCP任务

时间:2011-09-14 19:39:07

标签: java ant ssh scp

我希望能够将我的应用程序转移到开发服务器,但为了访问它,我首先必须ssh到SSH网关,然后ssh到内部网络到相应的服务器。我可以使用隧道选项使用WinSCP执行此操作,我知道ant支持SCP任务,但它是否通过另一个ssh连接支持它?

2 个答案:

答案 0 :(得分:0)

有点丑陋的建议,但您是否可以使用scp任务将您的应用部署到网关,然后使用sshexec任务在网关上运行脚本以将您的应用程序scp到下一个服务器?

答案 1 :(得分:0)

虽然这个问题并不是全新的,但我今天发现自己处于类似情况。我的目标是在我必须隧道(通过另一台服务器)的远程服务器上上传文件和运行命令。 蚂蚁可以实现!

sshsession只会创建一个隧道,您可以将其用于其中的任务。其中的任务不会自动在远程服务器上运行,但您可以将sshexec任务与隧道一起使用来实现此目的。此外,scp任务现在可以通过隧道上传到远程服务器。这是一个例子:

<sshsession host="${jumphost}" port="22" username="${user}" password="${password}" trust="true">
    <localtunnel lport="${localTunnelPort}" rhost="${targethost}" rport="22"/>
    <sequential>
        <!-- run a command on the remote server (here mkdir) -->
        <sshexec host="localhost" port="${localTunnelPort}" username="${user.param}" password="${password.param}" command="mkdir ${home}/foobar" trust="true" />
        <!-- upload a file to the remote server -->
        <scp port="${localTunnelPort}" file="test_file.txt" todir="${user.param}:${password.param}@localhost:${home}/foobar/" trust="true" />
    </sequential>
</sshsession>