SpringBoot整合ssh(Springboot整合ssh)

  本篇文章为你整理了SpringBoot整合ssh(Springboot整合ssh)的详细内容,包含有springboot整合ssm框架 Springboot整合ssh springboot整合ssm项目 springboot整合ssm好处 SpringBoot整合ssh,希望能帮助你了解 SpringBoot整合ssh。

  Jsch百度百科介绍:JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。

  Jsch Maven依赖包:

  
17 //ssh远程连接的ip地址

  18 private final static String SSH_REMOTE_SERVER = “XXX.XXX.XXX.XXX";

  19 //ssh连接的端口号

  20 private final static int SSH_REMOTE_PORT = 22;

  21 //本地mysql发起连接的数据库IP地址

  22 private final static String MYSQL_REMOTE_SERVER = "XXX.XXX.XXX.XXX";

  23 //本地数据库连接时用的端口号

  24 private final static int LOCAl_PORT = 3310;

  25 //远程数据库端口用的端口号

  26 private final static int REMOTE_PORT = 3306;

  29 private Session sesion; //ssh 会话

  32 public void closeSSH ()

  34 sesion.disconnect();

  38 public SshConnectionTool () throws Throwable

  42 JSch jsch = new JSch();

  45 sesion = jsch.getSession(SSH_USER, SSH_REMOTE_SERVER, SSH_REMOTE_PORT);

  48 sesion.setPassword(SSH_PASSWORD);

  51 //设置连接过程不校验known_hosts文件中的信息

  52 Properties config = new Properties();

  53 config.put("StrictHostKeyChecking", "no");

  54 sesion.setConfig(config);

  57 sesion.connect(); //ssh 建立连接!

  60 //根据安全策略,您必须通过转发端口进行连接

  61 sesion.setPortForwardingL(LOCAl_PORT, MYSQL_REMOTE_SERVER, REMOTE_PORT);

  65 }

 

 

   会话监听类:

  

 1 import org.springframework.stereotype.Component;

 

   4 import javax.servlet.ServletContextEvent;

   5 import javax.servlet.ServletContextListener;

   8 /**

   9 * @author dcf

  10 * @date 2022-09-23 17:55

  11 **/

  12 @Component

  13 public class SshContextListener implements ServletContextListener{

  16 private SshConnectionTool conexionssh;

  17 public SshContextListener() {

  18 super();

  20 /**

  21 * @see ServletContextListener#contextInitialized(ServletContextEvent)

  22 */

  23 @Override

  24 public void contextInitialized(ServletContextEvent arg0) {

  25 System.out.println("Context initialized ... !");

  26 try {

  27 conexionssh = new SshConnectionTool();

  28 } catch (Throwable e) {

  29 e.printStackTrace(); // 连接失败

  34 /**

  35 * @see ServletContextListener#contextDestroyed(ServletContextEvent)

  36 */

  37 @Override

  38 public void contextDestroyed(ServletContextEvent arg0) {

  39 System.out.println("Context destroyed ... !");

  40 conexionssh.closeSSH(); // 断开连接

  42 }

 

   需要连接的mysql地址配置:

  

1 td-sql:

 

  2 type: com.alibaba.druid.pool.DruidDataSource

  3 driverClassName: com.mysql.cj.jdbc.Driver

  4 jdbcUrl: jdbc:mysql://127.0.0.1:3310/test?allowMultiQueries=true useSSL=false serverTimezone=Asia/Shanghai

  5 username: name

  6 password: password

 

   注:mysql地址配置中的127.0.0.1,其实在连接配置工具类会话方法中默认的,当然里面有多个重载方法,根据不同的重载方法进行不同的配置mysql地址和端口号

  

 1 public int setPortForwardingL(int lport, String host, int rport) throws JSchException {

 

   2 return this.setPortForwardingL("127.0.0.1", lport, host, rport);

   6 public int setPortForwardingL(String bind_address, int lport, String host, int rport) throws JSchException {

   7 return this.setPortForwardingL(bind_address, lport, host, rport, (ServerSocketFactory)null);

  11 public int setPortForwardingL(String bind_address, int lport, String host, int rport, ServerSocketFactory ssf) throws JSchException {

  12 return this.setPortForwardingL(bind_address, lport, host, rport, ssf, 0);

  13 }

 

  

  友好交流,个人公众号:

  

  

  

  

  以上就是SpringBoot整合ssh(Springboot整合ssh)的详细内容,想要了解更多 SpringBoot整合ssh的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: