2014-03-24 62 views
1

我在我的ant build.xml中使用scp任務,然後是sshexec。我從屏幕上的密碼字段獲取密碼的值。在任務成功完成之前,用戶無法檢查其密碼是否正確。SCP/SSHEXEC - 連接嘗試次數

因此,如果輸入的密碼不正確,Scp/sshexec是否會重試連接?是否有任何限制連接重試次數的手段?

回答

1

sshexecscp任務使用Java Secure Channel JSch,請參閱ant手冊library dependencies
我有一個類似的問題,因爲JSCH嘗試在com.jcraft.jsch.JSch類中配置6次驗證。當使用錯誤密碼時,用戶帳戶被鎖定。從


config.put("MaxAuthTries", "6"); 

到:

config.put("MaxAuthTries", "3"); 

手段JSch將只嘗試3次驗證
簡單修補的com.jcraft.jsch.JSch類這樣。

-

  1. 下載JSch釋放拉鍊here - - 評論之後,編輯最新的版本是0.1.51

  2. 解壓

  3. 開放jsch-0.1.51 /src/main/java/com/jcraft/jsch/JSch.java

  4. Change line 124
    from
    config.put(「MaxAuthTries」,「6」);

    config.put(「MaxAuthTries」,「3」);

  5. 保存

  6. 運行jsch-0.1.51 /根據您的操作系統

  7. 使用jsch-0.1.51 /距離/ lib目錄/ jsch-0.1.5的build.bat或build.sh .jar

+0

首先感謝您的回覆! ..但我如何修補二進制文件..我相對較新,不知道如何創建該修補程序。 –

+0

添加了一些說明 - 請參閱更新的答案。如果你不成功,我可以郵寄修補過的罐子。 – Rebse

+0

上傳的文件=> http://wikisend.com/download/139984/jsch-0.1.51-patched.jar該文件將可用7天MD5 = 2893A131C6775DCA1DB999D1EBADE566 – Rebse

1

這個解決方案不需要您在每次發佈新的JSch版本時修改和構建JSch庫。

只需添加下面的代碼片段或者在你的Ant腳本的開頭,或者調用scpsshexec任務之前:

<script language="javascript"> <![CDATA[ 
    com.jcraft.jsch.JSch.setConfig("MaxAuthTries", "1"); 
]]> </script> 

使用Ant 1.9.4和JSch 0.1.51/0.1.52測試。

+0

這對我們的團隊來說非常合適,對我來說似乎是最好的選擇,而不是被接受的答案。把'script'標籤放在你的螞蟻目標裏面,放在'sshexec'標籤上面,它就可以工作,不需要其他任何東西。 – tylerwal

+0

謝謝,我很高興它幫助! :-) – t0r0X