前言:
在最近的工作中,需要通过ssh的方式远程连接数据库,jdbc默认的连接方式是tcp/ip。查阅资料,发现java可通过JSch实现ssh的端口转发, 从而实现数据库的连接,这里记录一下具体实现过程。
思路:
1.本地和远程建立ssh连接通道;
2.设置ssh本地端口转发,本地转发到远程;
3.通过访问本地的转发端口,实现和远程的数据库建立连接
建立ssh连接通道核心代码
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
// step1:建立ssh连接
session.connect();
} catch (Exception e) {
if (null != session) {
//关闭ssh连接
session.disconnect();
}
e.printStackTrace();
}
本地端口转发核心代码:
//step2: 设置SSH本地端口转发,本地转发到远程
int assinged_port = session.setPortForwardingL(lport,