com.jcraft.jsch.JSchException: Session.connect: java.net.SocketTimeoutException: Read timed out解决办法
public class JSchUtil {
public static void main(String[] args) {
initConnect("192.168.102.132", "root", "root", 22, 30000);
}
/**
* 初始化连接linux服务器
* @param host
* @param userName
* @param password
* @param port
* @param timeout
* @return
*/
public static Session initConnect(String host,String userName,String password,int port,int timeout)
{
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession(userName, host, port);
} catch (JSchException e) {
e.printStackTrace();
}
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
try {
session.connect(timeout);
} catch (JSchException e) {
e.printStackTrace();
session.disconnect();
session = null;
}
return session == null ? null : session;
}
报错原因是timeout设置太短,实际项目中我设置是10000(即10s),在一个环境上好使,另外一个环境就报错,最后改为30000,就不报错。
或者可以把/etc/ssh/sshd_config文件中, #UseDNS yes,注释去掉,yes改为no,重启ssh服务:service sshd restart,可以加速ssh连接服务。
学习交流QQ群:808973145
}
更多推荐
所有评论(0)