最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot如何通過SSH連接遠(yuǎn)程服務(wù)器

 更新時(shí)間:2024年07月10日 08:42:33   作者:平平常常一般牛  
這篇文章主要介紹了springboot如何通過SSH連接遠(yuǎn)程服務(wù)器問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

業(yè)務(wù)場景

處于對安全角度的考慮并且服務(wù)器不在同一個(gè)局域網(wǎng)下,服務(wù)器的訪問地址不適合直接放到公網(wǎng)上,需要本地服務(wù)器通過ssh信道轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器中。

springboot單體項(xiàng)目連接服務(wù)器。

解決方法

引入依賴

		<dependency>
            <groupId>com.jcraft</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.53</version>
        </dependency>

賬號密碼驗(yàn)證連接SSH

  • SSH連接工具類
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.util.Properties;

/**
 * SSH連接遠(yuǎn)程服務(wù)器轉(zhuǎn)發(fā)工具類
 */
public class SshConnectionTool {

    //ssh連接的用戶名
    private final static String SSH_USER = "test";
    //ssh連接的密碼
    private final static String SSH_PASSWORD = "123456";
    //ssh遠(yuǎn)程連接的ip地址
    private final static String SSH_REMOTE_SERVER = "12.34.56.78";
    //ssh連接的端口號
    private final static int SSH_REMOTE_PORT = 2721;
    //遠(yuǎn)程mysql連接的IP地址
    private final static String MYSQL_REMOTE_SERVER = "124.543.789.111";
    //本地?cái)?shù)據(jù)庫連接時(shí)用的端口號,和yml配置的端口一致
    private final static int LOCAl_PORT = 3309;
    //遠(yuǎn)程數(shù)據(jù)庫端口用的端口號
    private final static int REMOTE_PORT = 31494;

    private Session sesion; //ssh 會話

    public void closeSSH ()
    {
        sesion.disconnect();
    }

    public SshConnectionTool () throws Throwable
    {

        JSch jsch = new JSch();

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

        sesion.setPassword(SSH_PASSWORD);

        //設(shè)置連接過程不校驗(yàn)known_hosts文件中的信息
        Properties config = new Properties();
        config.put("StrictHostKeyChecking", "no");
        sesion.setConfig(config);

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

        //根據(jù)安全策略,您必須通過轉(zhuǎn)發(fā)端口進(jìn)行連接
        sesion.setPortForwardingL(LOCAl_PORT, MYSQL_REMOTE_SERVER, REMOTE_PORT);
    }
}
  • SSH連接監(jiān)視器
import org.springframework.stereotype.Component;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/**
 * SSH鏈接 監(jiān)視器
 */
@Component
public class SshContextListener implements ServletContextListener {
    private SshConnectionTool conexionssh;
    public SshContextListener() {
        super();
    }
    /**
     * @see ServletContextListener#contextInitialized(ServletContextEvent)
     */
    public void contextInitialized(ServletContextEvent arg0) {
        System.out.println("Context initialized ... !");
        try {
            conexionssh = new SshConnectionTool();
        } catch (Throwable e) {
            e.printStackTrace(); // 連接失敗
        }
    }

    /**
     * @see ServletContextListener#contextDestroyed(ServletContextEvent)
     */
    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("Context destroyed ... !");
        conexionssh.closeSSH(); // 斷開連接
    }
}
  • yml 連接池配置
url: jdbc:mysql://127.0.0.1:3309/test?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中BigDecimal序列化科學(xué)計(jì)數(shù)法前端展示問題踩坑實(shí)戰(zhàn)

    Java中BigDecimal序列化科學(xué)計(jì)數(shù)法前端展示問題踩坑實(shí)戰(zhàn)

    BigDecimal是處理高精度的浮點(diǎn)數(shù)運(yùn)算的常用的一個(gè)類當(dāng)需要將BigDecimal中保存的浮點(diǎn)數(shù)值打印出來,這篇文章主要給大家介紹了關(guān)于Java中BigDecimal序列化科學(xué)計(jì)數(shù)法前端展示問題踩坑的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • 關(guān)于SpringBoot3.x中spring.factories功能被移除的解決方案

    關(guān)于SpringBoot3.x中spring.factories功能被移除的解決方案

    這篇文章主要介紹了SpringBoot3.x中spring.factories功能被移除的解決方案,在配置好相關(guān)依賴、最小啟動類和配置之后,發(fā)現(xiàn)項(xiàng)目無法啟動,于是根據(jù)啟動上下文日志和按行DEBUG找到原因并且在等待組件升級兼容之前進(jìn)行臨時(shí)性解決,需要的朋友可以參考下
    2022-12-12
  • 分享JPA的幾個(gè)小技巧

    分享JPA的幾個(gè)小技巧

    這篇文章主要分享了JPA的幾個(gè)小技巧,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 整理很詳細(xì)的Java正則表達(dá)式使用大全

    整理很詳細(xì)的Java正則表達(dá)式使用大全

    這篇文章為大家整理了很詳細(xì)的Java正則表達(dá)式使用大全,大家在使用Java正則表達(dá)式的時(shí)候可查閱這篇文章,認(rèn)為不錯(cuò)的朋友可以收藏起來
    2015-12-12
  • Java應(yīng)用CPU過高的排查全流程

    Java應(yīng)用CPU過高的排查全流程

    Java CPU 飆高90% 都是業(yè)務(wù)代碼死循環(huán)、頻繁GC、密集計(jì)算、死鎖/自旋導(dǎo)致的,排查有標(biāo)準(zhǔn)、固定、可落地的流程,不需要猜,下面給你一套從登錄服務(wù)器到定位代碼行的完整實(shí)戰(zhàn)步驟,需要的朋友可以參考下
    2026-06-06
  • 簡述JAVA中堆內(nèi)存與棧內(nèi)存的區(qū)別

    簡述JAVA中堆內(nèi)存與棧內(nèi)存的區(qū)別

    這篇文章主要介紹了JAVA中堆內(nèi)存與棧內(nèi)存的區(qū)別,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • IDEA開發(fā)并部署運(yùn)行WEB項(xiàng)目全過程

    IDEA開發(fā)并部署運(yùn)行WEB項(xiàng)目全過程

    文章介紹了WEB項(xiàng)目標(biāo)準(zhǔn)結(jié)構(gòu)及部署方法,涵蓋目錄劃分(如WEB-INF、classes、lib)、核心文件(web.xml、index.html),以及三種部署方式:直接放置webapps、war包部署、自定義路徑配置,同時(shí)說明了IDEA中如何關(guān)聯(lián)Tomcat、配置項(xiàng)目結(jié)構(gòu)及部署原理
    2025-07-07
  • Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案

    Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案

    這篇文章主要介紹了Java并發(fā)統(tǒng)計(jì)變量值偏差原因及解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringMVC統(tǒng)一異常處理實(shí)例代碼

    SpringMVC統(tǒng)一異常處理實(shí)例代碼

    這篇文章主要介紹了SpringMVC統(tǒng)一異常處理實(shí)例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • JAVA 根據(jù)Url把多文件打包成ZIP下載實(shí)例

    JAVA 根據(jù)Url把多文件打包成ZIP下載實(shí)例

    這篇文章主要介紹了JAVA 根據(jù)Url把多文件打包成ZIP下載的相關(guān)資料,需要的朋友可以參考下
    2017-08-08

最新評論

隆林| 寿光市| 延安市| 正蓝旗| 太原市| 绩溪县| 林甸县| 商河县| 巫溪县| 阿城市| 城口县| 白银市| 广东省| 长宁县| 那坡县| 赤峰市| 正蓝旗| 望都县| 寿光市| 沅陵县| 富宁县| 佛坪县| 上林县| 德江县| 石河子市| 汨罗市| 大冶市| 清远市| 射洪县| 隆子县| 平果县| 万安县| 堆龙德庆县| 临泉县| 岫岩| 丰都县| 黄大仙区| 长武县| 新宾| 托里县| 库尔勒市|