zoukankan      html  css  js  c++  java
  • JSch 实现 SSH 端口转发

     1 package com.yinger.webservice.test;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.ResultSet;
     6 import java.sql.Statement;
     7 
     8 import com.jcraft.jsch.JSch;
     9 import com.jcraft.jsch.JSchException;
    10 import com.jcraft.jsch.Session;
    11 
    12 public class SSHexample {
    13 
    14     static int localPort = 3306;// 本地端口
    15     static String remoteHost = "localhost";// 远程MySQL服务器
    16     static int remotePort = 3306;// 远程MySQL服务端口
    17 
    18     public static void startSSH() throws JSchException {
    19         // SSH连接用户名
    20         String sshUser = "root";
    21         // SSH连接密码
    22         String sshPassword = "Shopex000000";
    23         // SSH服务器
    24         String sshHost = "120.76.101.77";
    25         // SSH访问端口
    26         int sshPort = 22;
    27         JSch jsch = new JSch();
    28         Session session = jsch.getSession(sshUser, sshHost, sshPort);
    29         session.setPassword(sshPassword);
    30         // 设置第一次登陆的时候提示,可选值:(ask | yes | no)
    31         session.setConfig("StrictHostKeyChecking", "no");
    32         session.connect();
    33         // 打印SSH服务器版本信息
    34         System.out.println(session.getServerVersion());
    35         // 设置SSH本地端口转发,本地转发到远程
    36         int assinged_port = session.setPortForwardingL(localPort, remoteHost, remotePort);
    37         // 删除本地端口的转发
    38         // session.delPortForwardingL(localPort);
    39         // 断开SSH链接
    40         // session.disconnect();
    41         // 设置SSH远程端口转发,远程转发到本地
    42         // session.setPortForwardingR(remotePort, remoteHost, localPort);
    43         System.out.println("localhost:" + assinged_port + " -> " + remoteHost + ":" + remotePort);
    44     }
    45 
    46     public static void testSSH() throws Exception {
    47         Connection conn = null;
    48         Statement st = null;
    49         ResultSet rs = null;
    50         try {
    51             Class.forName("com.mysql.jdbc.Driver");
    52             // 设置SSH本地端口转发后,访问本地ip+port就可以访问到远程的ip+port
    53             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
    54             st = conn.createStatement();
    55             String sql = "select * from test limit 10";
    56             rs = st.executeQuery(sql);
    57             while (rs.next())
    58                 System.out.println(rs.getString(1));
    59         } catch (Exception e) {
    60             throw e;
    61         } finally {
    62             if (rs!=null) {rs.close();rs=null;}
    63             if (st!=null) {st.close();st=null;}
    64             if (conn!=null) {conn.close();conn=null;}
    65         }
    66     }
    67 
    68     public static void main(String[] args) throws Exception {
    69         startSSH();
    70         testSSH();
    71     }
    72 }
  • 相关阅读:
    ASP.NET Core Docker部署
    Asp.Net Core 发布和部署(Linux + Jexus )
    Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
    作为一个测试leader平时应该注意哪些方面
    【转】性能测试工具 性能测试如何做?
    【转】Grafana系列教程–Grafana基本概念
    jar包和war包的介绍和区别
    MySQL常用存储引擎
    【参】编程习惯
    【转】性能测试中如何定位性能瓶颈
  • 原文地址:https://www.cnblogs.com/guodefu909/p/5805667.html
Copyright © 2011-2022 走看看