4

我遇到了 SSHEXEC ant 任务的问题。

我正在尝试连接到远程主机并执行命令。

我正在尝试使用“密钥文件”,所以我不需要使用用户/密码并遇到问题。

我可以让它连接,但得到提示:

[sshexec] 连接到 $HOST:22

[sshexec] Kerberos 用户名 [$Local_USER]:

[sshexec] $Local_USER 的 Kerberos 密码:

现在,如果我只是在每个提示符下按回车键,它就会继续执行命令。

我正在使用这种方法进行自动化,因此如果您需要交互,则无法达到目的。

这是 ANT 语法:

<target name="explode" depends="deploy" description="Creating build on Deployment Server">
      <sshexec host="${host}"
             username="${user}"
             keyfile="c:\paul\testkey"
             trust="true"
             command="${bin}/createBuild.sh"/>
</target>

Ant 版本 - 1.8.3 Jsch 版本 - jsch-0.1.42(也尝试使用 jsch-0.1.29)

如果我做错了什么,任何人都可以提供帮助或建议吗?

提前致谢。

保罗

4

4 回答 4

2

此问题现已在 Ant (1.9.1) 和 Jsch (0.1.50) 的最新版本中得到解决。

有一个关于 Apache 的错误报告显示它已在 2013 年 1 月得到修复。

于 2013-06-20T08:31:43.143 回答
2

您可以按照 Cambolie 的建议降级到 Java 1.6,也可以添加 -noinput 来解决此问题。

例如:

ant -noinput [some_target]
于 2012-11-29T14:01:22.697 回答
2

这里的问题在于 Java 7。

在 JAVA 7 中,他们将 Kerberos 引入了 java.security,因此这导致问题在继续之前提示输入 kerberos 用户/密码。

我已经通过降级到 Java 1.6 解决了这个问题。

我仍在研究 1.7 版 Java 的修复 - 可能需要进一步配置 Java 的 kerberos conf 文件。

于 2012-08-03T10:48:58.790 回答
0

这可能是远程端的错误配置。它当然不应该询问用户名。与您的系统管理员讨论此问题。我也很担心,Kerberos因为这与 SSH 完全无关。

还要确保在用户帐户中安装了公钥。

于 2012-08-03T08:42:52.463 回答