1. 程式人生 > >SSH隧道簡潔介紹以及SSH隧道實際應用

SSH隧道簡潔介紹以及SSH隧道實際應用

簡介

SSH隧道(即SSH代理、埠轉發),接觸過Linux系統的都知道SSH,對於SSH隧道,如果之前沒接觸過,只知道這個概念、網上搜索這方面的資料的話,網上的資料把簡單的問題複雜化了,寫的很複雜很繁瑣。
下面自己把簡單介紹下SSH隧道及SSH隧道實際應用總結一下。

SSH隧道幾個實際應用

一、為了安全,mysql root使用者只本機登入,在沒有授權訪問情況下,網路連線mysql資料庫。

環境:
主機:192.168.0.104
服務:mysql,root只執行本機登入

  • 使用plink工具
plink -L 3306:localhost:3306 root@192.168.1
.104 # 本機埠:目標主機:目標埠 隧道主機

輸入root密碼(普通使用者也可)後,開啟資料庫連線工具訪問本機3306埠便可訪問資料庫了

  • 使用資料庫連線工具,比如Navicat
    1、如圖配置SSH隧道
    這裡寫圖片描述
    2、配置資料庫連線資訊
    這裡寫圖片描述
    這時便可以連線上資料庫了。

二、資料庫主機沒有外網ip,外網如何連線資料庫

環境:
mysql:10.0.0.10
ssh主機:內網:10.0.0.1,外網:123.1.1.71
(方案一:搭建VPN,通過VPN連線資料庫
方案二:配置代理,如在ssh主機上配置Nginx代理,通過Nginx訪問資料庫)
而這裡通過SSH隧道就可以輕鬆訪問資料庫,只需要ssh主機普通使用者即可,無需伺服器多餘配置

  • plink工具
plink -L 3306:10.0.0.10:3306 fgf@123.1.1.71
  • 資料庫連線工具Navicat
    這裡寫圖片描述
    這裡寫圖片描述

三、一臺外網主機,多臺內網主機,如何方便登入內網主機

如上二的環境,ssh登入mysql主機需要ssh主機跳轉,每次手動輸入密碼太麻煩,如何能像記住外網密碼那樣,記住內網密碼?

  • SecureCRT
    1、新建一個ssh會話,配置SSH主機登入資訊(和正常一樣)
    這裡寫圖片描述
    2、配置SSH隧道
    這裡寫圖片描述
    3、保持ssh隧道會話連線,SecureCRT在新建一個ssh會話訪問本機22埠,便可以ssh訪問mysql主機

  • Xmanager 5
    1、新建SSH隧道會話
    這裡寫圖片描述


    這裡寫圖片描述
    2、保持ssh隧道會話連線,在新建一個ssh會話訪問本機22埠,便可以ssh訪問mysql主機

SSH/plink命令的基本資料:

ssh -C -f -N -L listen_port:DST_Host:DST_port [email protected]_Host 
ssh -C -f -N -R listen_port:DST_Host:DST_port [email protected]_Host 
ssh -C -f -N -D listen_port [email protected]_Host

相關引數的解釋:

-L port:host:hostport #建立本地SSH隧道(本地客戶端建立監聽埠)
將本地機(客戶機)的某個埠轉發到遠端指定機器的指定埠. 

-R port:host:hostport #建立遠端SSH隧道(隧道服務端建立監聽埠)
將遠端主機(伺服器)的某個埠轉發到本地端指定機器的指定埠. 
# 有本地對映肯定有遠端對映,就是把-L換成-R,這樣我們訪問遠端主機的埠就相當於訪問本地的埠,但感覺作用不大。

-D port 
指定一個本地機器 “動態的’’ 應用程式埠轉發. 

-C 壓縮資料傳輸。

-N Do not execute a shell or command. 
不執行指令碼或命令,僅僅做埠轉發。通常與-f連用。
-f Fork into background after authentication. 
後臺認證使用者/密碼,不用登入到遠端主機。