SCP / SSHEXEC - 连接尝试次数

时间:2014-03-24 13:55:04

标签: ant connection scp

我正在使用scp任务,然后在我的ant build.xml中使用sshexec。我从屏幕上的密码字段中获取密码的值。在任务成功完成之前,用户无法检查其密码是否正确。

因此,如果输入的密码不正确,Scp / sshexec是否会重试连接?是否有任何限制连接重试次数的句柄?

2 个答案:

答案 0 :(得分:1)

sshexecscp任务使用Java安全通道JSch,请参阅ant manual library dependencies
我有一个类似的问题,因为JSch尝试在com.jcraft.jsch.JSch类中配置6次身份验证。使用错误密码时,用户帐户被锁定 简单地修改com.jcraft.jsch.JSch类如下:

来自:

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

到:

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

表示JSch只会尝试3次进行身份验证。

- 评论后修改

  1. 下载JSch发布zip here - 最新版本为0.1.51

  2. 解压

  3. 打开jsch-0.1.51 / src / main / java / com / jcraft / jsch / JSch.java

  4. 更改行124 从
     config.put(“MaxAuthTries”,“6”);

     config.put(“MaxAuthTries”,“3”);

  5. 保存

  6. 根据您的操作系统运行jsch-0.1.51 / build.bat或build.sh

  7. 使用jsch-0.1.51 / dist / lib / jsch-0.1.5.jar

答案 1 :(得分:1)

此处的解决方案不需要您手动修补和重建JSch库。

为了将重试次数限制为1,只需在Ant脚本的开头或调用scriptscp任务之前添加以下sshexec代码段,例如:

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

<sshexec host="..." username="..." password="..." command="..."/>

你需要JSch 0.1.46或更高版本!我测试了Ant 1.9.4和JSch 0.1.51 / 0.1.52。