2012-08-02 35 views
4

我遇到了SSHEXEC ant任务的问题。ANT SSHEXEC任务使用密钥文件的问题

我想连接到远程主机并执行命令。

我正在尝试使用“keyfile”,所以我不需要使用user/pass并且遇到问题。

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

[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> 

蚂蚁版本 - 1.8.3 Jsch版本 - jsch-0.1.42(也试图与jsch-0.1.29)

谁能帮助或建议如果我做错了什么?

在此先感谢。

Paul

+0

您可以使用旧版本的ANT吗? – 2012-08-03 07:34:11

+0

没有理由不,你会推荐任何特定的版本? – Cambolie 2012-08-03 08:24:24

+0

好吧..老实说,一个疯狂的猜测..在ANT 1.8.3中更新SSHEXEC任务以包含新属性。所以只是想消除/缩小错误无论是与网络或远程站点(如Aaron建议)或ANT/sshexec ..所以任何版本在1.8.2之前应该做 – 2012-08-03 08:59:13

回答

0

这可能是远程端的配置错误。它当然不应该要求用户名。谈谈你的系统管理员。我也担心Kerberos,因为这与SSH完全无关。

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

+0

感谢您的提示,我将与我们的unix管理员联系,虽然很奇怪,但如果我使用标准的SSH与Windows openssh安装,我没有得到这个问题,它没有任何提示无缝连接 - 这就是为什么我认为这是一个ANT问题? – Cambolie 2012-08-03 09:03:21

+0

也许,但它仍然触发了他们放入登录shell脚本偏远的一面 – 2012-08-03 09:10:27

+0

嗯,最让我困惑的事情是,如果你只是在提示时打回来,它会继续没有问题......困惑。与几个不同版本的蚂蚁并获得相同的问题。 Unix管理员告诉我,服务器上没有任何配置需要Kerberos认证。 – Cambolie 2012-08-03 09:30:10

2

这里的问题在于在Java 7

在Java 7中,他们已经推出的Kerberos到java.security并在此这样造成的问题提示Kerberos用户/继续之前的密码。

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

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

+0

但是什么触发它?为什么Java尝试启动Kerberos呢? – 2012-08-03 12:12:08

+0

我不确定,但是在java.security文件中它现在有一整段关于Kerberos的内容 - 正如我所说的需要更多调查来理解为什么。 – Cambolie 2012-08-03 13:47:48

2

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

例如:

ant -noinput [some_target] 
1

此问题现已在蚂蚁(1.9.1)和Jsch(0.1.50)的最新版本解决。

有一个bug report与Apache,显示它已被修复截至2013年1月。

相关问题