我在 ant build.xml 中使用 scp 任务,然后使用 sshexec。我从屏幕上的密码字段中获取密码值。在任务成功完成之前,用户无法检查密码是否正确。
因此,如果输入的密码不正确,Scp/sshexec是否会重试连接?有没有什么句柄可以限制连接重试次数?
最佳答案
sshexec
和 scp
任务使用 Java 安全通道 JSch ,参见ant手册library dependencies .
我遇到了类似的问题,因为 JSch 尝试对 com.jcraft.jsch.JSch 类中配置的 6 次进行身份验证。当使用错误的密码时,用户帐户被锁定。
只需像这样修补 com.jcraft.jsch.JSch 类即可:
来自:
config.put("MaxAuthTries", "6");
至:
config.put("MaxAuthTries", "3");
意味着 JSch 只会尝试 3 次进行身份验证。
-- 评论后编辑--
下载 JSch 发行版 zip here - 最新版本是0.1.51
解压
打开jsch-0.1.51/src/main/java/com/jcraft/jsch/JSch.java
更改第 124 行
来自
config.put("MaxAuthTries", "6");
到
config.put("MaxAuthTries", "3");保存
根据您的操作系统运行 jsch-0.1.51/build.bat 或 build.sh
使用jsch-0.1.51/dist/lib/jsch-0.1.5.jar
关于ant - SCP/SSHEXEC - 连接尝试次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22611440/