JSch 实现 SSH 端口转发
package com.yinger.webservice.test; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement; import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session; public class SSHexample { static int localPort = 3306;// 本地端口
static String remoteHost = "localhost";// 远程MySQL服务器
static int remotePort = 3306;// 远程MySQL服务端口 public static void startSSH() throws JSchException {
// SSH连接用户名
String sshUser = "root";
// SSH连接密码
String sshPassword = "Shopex000000";
// SSH服务器
String sshHost = "120.76.101.77";
// SSH访问端口
int sshPort = 22;
JSch jsch = new JSch();
Session session = jsch.getSession(sshUser, sshHost, sshPort);
session.setPassword(sshPassword);
// 设置第一次登陆的时候提示,可选值:(ask | yes | no)
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
// 打印SSH服务器版本信息
System.out.println(session.getServerVersion());
// 设置SSH本地端口转发,本地转发到远程
int assinged_port = session.setPortForwardingL(localPort, remoteHost, remotePort);
// 删除本地端口的转发
// session.delPortForwardingL(localPort);
// 断开SSH链接
// session.disconnect();
// 设置SSH远程端口转发,远程转发到本地
// session.setPortForwardingR(remotePort, remoteHost, localPort);
System.out.println("localhost:" + assinged_port + " -> " + remoteHost + ":" + remotePort);
} public static void testSSH() throws Exception {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
// 设置SSH本地端口转发后,访问本地ip+port就可以访问到远程的ip+port
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
st = conn.createStatement();
String sql = "select * from test limit 10";
rs = st.executeQuery(sql);
while (rs.next())
System.out.println(rs.getString(1));
} catch (Exception e) {
throw e;
} finally {
if (rs!=null) {rs.close();rs=null;}
if (st!=null) {st.close();st=null;}
if (conn!=null) {conn.close();conn=null;}
}
} public static void main(String[] args) throws Exception {
startSSH();
testSSH();
}
}
JSch 实现 SSH 端口转发的更多相关文章
- 【转】实战 SSH 端口转发
本文转自:http://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/index.html,至于有什么用,懂的懂! 实战 SSH 端口转发 通 ...
- SSH 端口转发
第一部分 概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我 ...
- 实战 SSH 端口转发
转自实战 SSH 端口转发 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中的一些问题.学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业 ...
- 使用SSH代理上IPV6(使用SSH端口转发)
这几个月在国外待着,一直担心我的六维账户怎么办,那可是个宝贝啊.我看网上说可以用六飞啊神马的在IPV6下上IPV6的网站,但是冒失现在六维封禁了非学校的IPV6地址,所以这些软件就不顶用了. 想到以前 ...
- SSH25个命令 + 深入SSH端口转发细节
OpenSSH是SSH连接工具的免费版本.telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃 ...
- Linux SSH端口转发
SSH端口转发分为两种,一种是本地端口转发,又称为本地SSH隧道.一直是远程端口转发.SSH端口转发,还必须指定数据传送的目标主机,从而形成点对点的端口转发. 本地端口转发 假定有三台主机A. ...
- 玩转SSH端口转发
SSH有三种端口转发模式,本地端口转发(Local Port Forwarding),**远程端口转发(Local Port Forwarding)**以及**动态端口转发(Dynamic Port ...
- SSH端口转发详解及实例
一.SSH端口转发简介 SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据.但是,SSH还能够将其他TCP端口的网络数据通SSH链接来转发,并且自动提供了相应的加密及解密服务.这一过程也被叫 ...
- 利用SSH端口转发实现跨机器直接访问
在实际项目测试中经常会遇到数据库操作,但是因为公司安全问题,访问数据库往往需要通过跳板机.但通过跳板机,测试效率大打折扣,因此通过使用SSH端口转发,从而达到跨机器直接访问数据库.实际项目中的应用会比 ...
随机推荐
- 剑指Offer——数字在排序数组中出现的次数
题目描述: 统计一个数字在排序数组中出现的次数. 分析: 二分变形.二分查找最左边和最右边k的位置,然后相减加一就是结果. 代码: class Solution { public: int GetNu ...
- 【我的Android进阶之旅】TortoiseSVN 客户端 如何重置用户名和密码?
在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项,那么以后就不用每次都输入一遍用户名密码了. 不过,今天 ...
- git 的 pull、fetch、merge
1.pull = fetch + merge In the simplest terms, git pull does a git fetch followed by a git merge. You ...
- mongoDb,下载及启动
mongoDb下载 https://www.mongodb.com/download-center 可视化工具Robomongo下载 https://robomongo.org/download m ...
- TFTP服务器 NFS服务器 smb 、wireshark
在嵌入式开发过程中有宿主机和目标机的角色之分 宿主机是执行编译.链接嵌入式软件的计算机:目标机是运行嵌入式软件的硬件平台 宿主机一般通过网络.USB.JTAG等方式将软件下载到目标机. 网络下载:tf ...
- MySQL5.7密码安全策略(转)
环境介绍:CentOS 6.7 MySQL版本:5.7.11 1.查看现有的密码策略 mysql> SHOW VARIABLES LIKE 'validate_password%';参数解释:1 ...
- 设备驱动与控制器 I/O
控制器是对硬件发起控制命令,负责给系统提供接口,想要正常使用该硬件功能系统中必须安装相应驱动 I/O设备 cpu和存储器并不是操作系统唯一需要管理的资源,I/O设备也是非常重要的一环. I/O设备一般 ...
- xshell连接centos虚拟机
打开centos终端,输入ifconfig 如果没有这条命令可以输入ip address en什么什么的表示设备名称 inet后面跟着的就是ip地址 复制ip地址,打开xshell,新建,在主机中输入 ...
- ASP.NET MVC5 视图相关学习
MVC Razor模板引擎中3个重要的方法:@RenderBody.@RenderPage.@RenderSection 1.@RenderBody 在Razor引擎中布局页面类似于asp.net中的 ...
- Linux下修改时间
修改linux的时间可以使用date指令 date命令的功能是显示和设置系统日期和时间. 输入date 查看目前系统时间. 修改时间需要 date -功能字符 修改内容 命令中各选项的含义分别为: - ...