如何解决双跳 SSH 连接:连接重置
我正在尝试使用 jsch 在 java 中执行双跳 SSH。它是这样的: scheme
当我连接到第二个会话时,我遇到了连接重置问题。
代码如下:
String user=user; String host=host; String pswd=pass;
JSch jsch = new JSch();
Session session= jsch.getSession(user,host,22);
session.setPassword(pswd);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking","no");
session.setConfig(config);
System.out.println("Connecting to host1 ");
session.connect();
lport=2248;
rhost= rhost;
rport= 22;
int assinged_port=session.setPortForwardingL(lport,rhost,rport);
String user2=user;
String pswd2= pswd;
Session session2=jsch.getSession(user2,"localhost",assinged_port);
session2.setPassword(pswd2);
session2.setConfig(config);
System.out.println("Connecting to rhost via localhost:" + assinged_port);
session2.connect();
Channel channel = session2.openChannel("exec");
((ChannelExec)channel).setCommand("sh run");
channel.setInputStream(null);
ByteArrayOutputStream errorStream = new ByteArrayOutputStream();
((ChannelExec)channel).setErrStream(errorStream);
ByteArrayOutputStream out = new ByteArrayOutputStream();
channel.setOutputStream(out);
channel.connect();
while(true){
if(channel.isClosed()){
System.out.println("exit-status: "+ channel.getExitStatus());
break;
}
}
String result =new String(out.toByteArray());
channel.disconnect();
这是由此产生的错误:
com.jcraft.jsch.JSchException: Session.connect: java.net.SocketException: 连接重置 在 com.jcraft.jsch.Session.connect(Session.java:565) 在 com.jcraft.jsch.Session.connect(Session.java:183)
我不知道我做错了什么以及如何加入第二台服务器。
也试过这个问题的解决方案 -> SSH tunneling via JSch
但我在第二次连接时遇到了同样的错误“连接重置”
提前感谢您的帮助和建议!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。