今天使用jsch实现ssh功能遇到一个问题,请各位大神帮忙看看,先在这里谢过了。问题如下:
之前能通过命令sftp username@ip连接对端服务器,java代码为
发现使用session.setConfig("BindAddress", ip_浮动);//无效
继续查资料,试着使用代理
求各位大神。指教
20170302后面的解决方法:
之前能通过命令sftp username@ip连接对端服务器,java代码为
com.jcraft.jsch.Session session = null;
JSch jsch = new JSch();
session = jsch.getSession(userName, ip, Integer.parseInt(port));
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
后面由于客户安全考虑使用了浮动ip,先前的命令无法连通,需用命令sftp -oBindAddress=ip_浮动 syncoss@ip。
发现使用session.setConfig("BindAddress", ip_浮动);//无效
继续查资料,试着使用代理
ProxySOCKS4 proxysocket = new ProxySOCKS4(ip_浮动,22);
session.setProxy(proxysocket);
依旧不行。。。。
求各位大神。指教
20170302后面的解决方法:
session.setConfig("StrictHostKeyChecking", "no");
// 增加浮动ip的绑定
if (!"".equals(bindAddress) && null != bindAddress) {
SocketFactoryIns socketFactory = new SocketFactoryIns();
socketFactory.setLocalAddressIp(bindAddress);
session.setSocketFactory(socketFactory);
}
session.setPassword(password);
....