SSH隧道簡潔介紹以及SSH隧道實際應用
阿新 • • 發佈:2019-01-08
簡介
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.
後臺認證使用者/密碼,不用登入到遠端主機。