2012-08-02 38 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月。

相關問題