使用JSCH框架通过跳转机访问其他节点的方法
之前搞了套远程访问ssh进行操作的代码,最近有需求,需要通过一台跳转机才能访问目标服务。在网上搜了半天,也没找到比较好的例子,就自己翻阅了下JSCH的API。但是看的云里雾里的。联想了下,端口转发的原理是否是把目标节点ip:port映射到localhost:port,然后通过localhost:port发送消息就可以抵达目标节点呢?
带着这个推论,改造了下之前的代码。
原有代码通过jsch连接目标节点服务器这里就不多说了,自行百度,网上很多。
下面贴下改造之后的代码:
/**
* 获取连接
* @param ip 跳转机host
* @param userName 跳转机用户名
* @param pwd 跳转机密码
* @param port 跳转机端口
* @return ChannelSftp 返回值
* @throws JSchException 连接异常
*/
public static ChannelSftp connect(String ip, String userName, String pwd, int port) throws JSchException
{
if (port <= 0)
{
port = PORT;
}
Session sshSession = null;
JSch jsch = new JSch();
sshSession = jsch.getSession(userName, ip, port);
sshSession.setPassword(pwd);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshConfig.put("PreferredAuthentications",
"password,keyboard-interactive");
sshSession.setConfig(sshConfig);
sshSession.connect(TMOUT);//可设置超时时间
//此处开始为端口映射到本地的部分
sshSession.setPortForwardingL(本地端口, 目标节点地址, 22);
//完成上诉映射之后,即可通过本地端口连接了
Session session = jsch.getSession("目标服务用户名", "127.0.0.1",本地端口);
Properties remoteCfg = new Properties();
remoteCfg.put("StrictHostKeyChecking", "no");
remoteCfg.put("PreferredAuthentications",
"password,keyboard-interactive");
session.setConfig(remoteCfg);
session.setPassword("目标服务密码");
session.connect();
//后续如何可自行改变,网上运用很多
Channel channel = (Channel) session.openChannel("sftp");//创建sftp通信通道
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
return sftp;
}
最后测试通过sftp访问目标节点的目录,成功。
以上这篇使用JSCH框架通过跳转机访问其他节点的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
WebSocket+Vue+SpringBoot实现语音通话的使用示例
本文主要介绍了WebSocket+Vue+SpringBoot实现语音通话的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-11-11
IntelliJ IDEA 2018 最新激活码(截止到2018年1月30日)
这篇文章主要介绍了IntelliJ IDEA 2018 最新激活码(截止到2018年1月30日)的相关资料,需要的朋友可以参考下2018-01-01
Java基础开发之JDBC操作数据库增删改查,分页查询实例详解
这篇文章主要介绍了Java基础开发之JDBC操作数据库增删改查,分页查询实例详解,需要的朋友可以参考下2020-02-02
SpringCloud升级2020.0.x版之OpenFeign简介与使用实现思路
在微服务系统中,我们经常会进行 RPC 调用。在 Spring Cloud 体系中,RPC 调用一般就是 HTTP 协议的调用。对于每次调用,都要经过一系列详细步骤,接下来通过本文给大家介绍SpringCloud OpenFeign简介与使用,感兴趣的朋友一起看看吧2021-10-10


最新评论