本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。