gpt4 book ai didi

ant - 输入 sshexec 的密码

转载 作者:行者123 更新时间:2023-12-01 12:57:14 25 4
gpt4 key购买 nike

我在公共(public)服务器上有一个可供多个用户使用的 ant 脚本。我想安全地将密码输入脚本并将其用于多个目标。以下代码通过输入获取密码,但变量未传递给 sshexec 任务。

这行得通还是有更好的方法?

<target name="get_password">
<input message="Enter Your Password:>" addproperty="password">
<handler classname="org.apache.tools.ant.input.SecureInputHandler" />
</input>
</target>

<target name="create_tmp_dir">
<sshexec host="${host}"
username="${username}"
password="${password}"
command="mkdir ${tmp_dir}" />
</target>

最佳答案

好的...我知道我迟到了一年,但对于新手来说,这就是我解决问题的方法。我的目标是以 root 身份执行命令而不泄露我的密码(显然)

<target name="getServerCredentials" unless="${server.user}">
<input message="${server-name} user:" addproperty="server.user" />
<input message="${server.user} password:" addproperty="server.pass">
<handler classname="org.apache.tools.ant.input.SecureInputHandler" />
</input>
</target>


<target name="execute-command" depends="getServerCredentials">
<sshexec host="${server-name}" username="${server.user}" password="${server.pass}" command="~./become-root.sh" inputproperty="server.pass"/>
</target>

最后,我在服务器的 ~/become-root.sh 中创建了一个如下所示的 bash 脚本

#!/bin/sh
read var
echo $var | sudo -S whoami --

如果您调用 execute-command 任务,您现在可以以 sudo 身份运行命令(假设您的用户是 sudoer)

希望这对您有所帮助!

关于ant - 输入 sshexec 的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com