我正在尝试使用 sudo 在远程服务器中执行这样的命令
<target name="remote-test">
<sshexec host="${remote.host}"
username="${remote.user}"
password="${remote.pass}"
trust="true"
usepty="true"
command="sudo ls /home/myuser" />
</target>
但服务器响应如下:
Buildfile: build.xml
remote-test:
[sshexec] Connecting to 0.0.0.0:22
[sshexec] cmd : sudo ls /home/myuser
[sshexec] [sudo] password for myuser:
那么,如何使用 ant 使用 sudo 执行远程命令呢?
谢谢:)
是的,也许可以像这样复制:
如何在不覆盖 TTY 的情况下将密码传递给 su/sudo/ssh?
但无论如何,这个问题的一个解决方案就像在投票最多的答案中所说的那样
<target name="remote-test-jboss">
<sshexec host="${remote.host}"
username="${remote.user}"
password="${remote.pass}"
command="echo ${remote.pass}| sudo -S ls /home/myserver"
trust="true"
/>
</target>
-S 参数用于从标准输入读取。