Хотя этот вопрос не совсем новый, сегодня я оказался в похожей ситуации. Моя цель - загрузить файлы и выполнить команды на удаленном сервере, к которому я должен туннелировать (через другой сервер). И это возможно с муравьем!
sshsession
создает только туннель , который можно использовать для выполнения задач. Задачи внутри не запускаются автоматически на удаленном сервере, но вы можете использовать задачу sshexec
вместе с tunnel для достижения этой цели. Также задача 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>