欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用JSCH框架通過跳轉(zhuǎn)機訪問其他節(jié)點的方法

 更新時間:2017年12月09日 09:25:52   作者:oldChicken  
下面小編就為大家分享一篇使用JSCH框架通過跳轉(zhuǎn)機訪問其他節(jié)點的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

之前搞了套遠程訪問ssh進行操作的代碼,最近有需求,需要通過一臺跳轉(zhuǎn)機才能訪問目標服務。在網(wǎng)上搜了半天,也沒找到比較好的例子,就自己翻閱了下JSCH的API。但是看的云里霧里的。聯(lián)想了下,端口轉(zhuǎn)發(fā)的原理是否是把目標節(jié)點ip:port映射到localhost:port,然后通過localhost:port發(fā)送消息就可以抵達目標節(jié)點呢?

帶著這個推論,改造了下之前的代碼。

原有代碼通過jsch連接目標節(jié)點服務器這里就不多說了,自行百度,網(wǎng)上很多。

下面貼下改造之后的代碼:

/**
  * 獲取連接
  * @param ip 跳轉(zhuǎn)機host
  * @param userName 跳轉(zhuǎn)機用戶名
  * @param pwd 跳轉(zhuǎn)機密碼
  * @param port 跳轉(zhuǎn)機端口
  * @return ChannelSftp 返回值
  * @throws JSchException 連接異常
  */
 public static ChannelSftp connect(String ip, String userName, String pwd, int port) throws JSchException
 {
  if (port <= 0)
  {
   port = PORT;
  }
  Session sshSession = null;
  JSch jsch = new JSch();
  sshSession = jsch.getSession(userName, ip, port);
  
  sshSession.setPassword(pwd);
  Properties sshConfig = new Properties();
  sshConfig.put("StrictHostKeyChecking", "no");
  sshConfig.put("PreferredAuthentications",
    "password,keyboard-interactive");
  sshSession.setConfig(sshConfig);
  
  
  sshSession.connect(TMOUT);//可設置超時時間 
  //此處開始為端口映射到本地的部分
  sshSession.setPortForwardingL(本地端口, 目標節(jié)點地址, 22);
  //完成上訴映射之后,即可通過本地端口連接了
  Session session = jsch.getSession("目標服務用戶名", "127.0.0.1",本地端口);
  Properties remoteCfg = new Properties();
  remoteCfg.put("StrictHostKeyChecking", "no");
  remoteCfg.put("PreferredAuthentications",
    "password,keyboard-interactive");
  session.setConfig(remoteCfg);
  session.setPassword("目標服務密碼");
  session.connect();
  //后續(xù)如何可自行改變,網(wǎng)上運用很多
  Channel channel = (Channel) session.openChannel("sftp");//創(chuàng)建sftp通信通道 
  channel.connect();
  ChannelSftp sftp = (ChannelSftp) channel;
  
  return sftp;
 }

最后測試通過sftp訪問目標節(jié)點的目錄,成功。

以上這篇使用JSCH框架通過跳轉(zhuǎn)機訪問其他節(jié)點的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java異常--常見方法--自定義異常--增強try(try-with-resources)詳解

    Java異常--常見方法--自定義異常--增強try(try-with-resources)詳解

    這篇文章主要介紹了Java異常--常見方法--自定義異常--增強try(try-with-resources)的相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • Java?數(shù)據(jù)庫連接池Druid?的介紹

    Java?數(shù)據(jù)庫連接池Druid?的介紹

    這篇文章主要給大家分享的是?Java?數(shù)據(jù)庫連接池Druid?的介紹,Druid是一個JDBC組件,它包括三部分:?DruidDriver?代理Driver,能夠提供基于Filter-Chain模式的插件體系。?DruidDataSource?高效可管理的數(shù)據(jù)庫連接池,下面來看看文中的詳細內(nèi)容,需要的朋友也可以參考一下
    2021-11-11
  • MybatisPlus?QueryWrapper常用方法實例

    MybatisPlus?QueryWrapper常用方法實例

    MyBatis-Plus(opens new window)是一個MyBatis(opens new window)的增強工具,在 MyBatis的基礎上只做增強不做改變,為簡化開發(fā)、提高效率而生,下面這篇文章主要給大家介紹了關于MybatisPlus?QueryWrapper常用方法的相關資料,需要的朋友可以參考下
    2022-04-04
  • java環(huán)境變量的配置方法圖文詳解【win10環(huán)境為例】

    java環(huán)境變量的配置方法圖文詳解【win10環(huán)境為例】

    這篇文章主要介紹了java環(huán)境變量的配置方法,結合圖文形式詳細分析了win10環(huán)境下java環(huán)境變量的配置方法與相關操作注意事項,需要的朋友可以參考下
    2020-04-04
  • Java設計模式之淺談外觀模式

    Java設計模式之淺談外觀模式

    這篇文章主要介紹了Java設計模式之外觀模式的相關資料,需要的朋友可以參考下
    2022-09-09
  • Java用split分割含一個或多個空格的字符串案例

    Java用split分割含一個或多個空格的字符串案例

    這篇文章主要介紹了Java用split分割含一個或多個空格的字符串案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來過來看看吧
    2020-09-09
  • Java使用lambda表達式簡化代碼的示例詳解

    Java使用lambda表達式簡化代碼的示例詳解

    這篇文章主要給大家介紹了Java如何使用lambda表達式簡化代碼的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-11-11
  • SpringBoot與Angular2的集成示例

    SpringBoot與Angular2的集成示例

    本篇文章主要介紹了SpringBoot與Angular2的集成示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Java使用備忘錄模式實現(xiàn)過關類游戲功能詳解

    Java使用備忘錄模式實現(xiàn)過關類游戲功能詳解

    這篇文章主要介紹了Java使用備忘錄模式實現(xiàn)過關類游戲功能,結合實例形式詳細分析了java備忘錄模式的概念、原理及其在過關類游戲中的具體應用方法,需要的朋友可以參考下
    2018-04-04
  • Java系統(tǒng)中拆分同步和異步詳解

    Java系統(tǒng)中拆分同步和異步詳解

    這篇文章主要給大家介紹了關于Java系統(tǒng)中拆分同步和異步的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06

最新評論