gpt4 book ai didi

shell - su -c 的 ANT SSHEXEC 密码提示问题

转载 作者:行者123 更新时间:2023-12-03 19:15:22 26 4
gpt4 key购买 nike

我试图解决问题并使用 ANT/SSHEXEC 命令。

设置:

Solaris 服务器使用 NIS 和基于角色的用户进行运行时事件。

您不能直接登录到 RBAC 帐户,您必须以个人用户身份连接并使用 su 连接到该用户 - 我被告知在此环境中不能选择 SUDO。

所以情况是我正在构建一些 ANT 脚本来构建、部署然后在远程服务器上运行一组脚本。

构建和部署很好,因为这是作为我的用户执行的,但是当尝试使用 SSHEXEC 连接到 su -c $user 时,我遇到了一个问题,shell 响应密码提示,但我无法输入任何东西。

所以在这里我要么想要一个让我输入密码并继续的解决方案,要么想要一种将密码作为我输入的变量传递给提示的方法。

这是我目前使用的代码:

<target name="install-products">
<sshexec host="${remote.host1}"
username="${remote.user}"
password="${remote.pwd}"
command="/usr/bin/su - $user -c cd ${remote.install.dir}/OracleSunJDK;./installJAVA.sh -p project -e 935"
usepty="true"
trust="true"
failonerror="true"/>
</target>

所以我以我的用户身份连接,例如 ssh -t cambolie@${remote.host1}... 用户和密码如上所述传递,它的 su -c 然后导致提示出现。

这是目前发生的事情:

install-products:
[sshexec] Connecting to ${remote.host1}:22
[sshexec] cmd : /usr/bin/su - ${su-user} -c cd /var/tmp/weblogic/RP_WEBLOGIC_J2EE_1.0.0.0/install/OracleSunJDK;./installJAVA.sh -p project -e 935
[sshexec] Password:

它只是卡在这个阶段。

有人能帮忙吗?

最佳答案

以下是可能的解决方案之一。

  1. 设置基于 key 的 scp 从您的主机到您的目标机器。
  2. 将构建脚本修改为 scp 标记文件(即 begin.install ,零字节文件)
  3. 在目标机器上设置一个 cron 来查找标记文件,一旦找到,就开始在该服务器上执行一系列步骤。完成后,删除标记文件。

关于shell - su -c 的 ANT SSHEXEC 密码提示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12976300/

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