Contents

ssh port forward連MySQL方法(SSH Tunnel)

早上看到Backend 台灣 (Backend Tw)

1
2
3
4
5
6
傳統老人要連上production db的方法:
...
2 把自己電腦的public key放到這台nano machine上的authorized_keys,以便自己電腦不用每次ssh都要輸入密碼。
3 每次要連上mysql時,先建立ssh port forwarding
ssh -L 9000:yourDBhostname:3306 smallPotato@abc.com
4 然後,看你喜歡用phpMyAdmin也好,mysql bench也好,連線上localhost:9000,這樣子便能連線上production db

以上內容來自Backend 台灣 (Backend Tw) Triton Ho

之前有用過ssh tunnel 代理網頁來看
但沒想到可以用在MySQL
可能以前沒有深入理解這怎麼傳的 (>////<)

早上看FB看到ssh port forwarding
沒想到還有這種操作

長期用phpmyadmin真的很痛苦
但是用這個方法可以用workbench連到MySQL(內網)
想說有沒有快速的方法

DBeaver

DBeaver Community | Free Universal Database Tool

連線設定可以設定SSH Tunnel
這樣以後一鍵迅速連MySQL
https://dbeaver.com/wp-content/uploads/2018/09/redis-connection-ssh.png

設定非常簡單簡單,也不需要打ssh指令

SSH 相關資料

由於我家裡沒有兩個不同網段
所以我就沒有實驗
但基於理解還是仔細爬了一下網路文章
不太想花太多時間研究
簡單整理一下

  • Local port forwarding
1
ssh -L <local_port>:<target_host>:<target_port> remote_user@remote_host
  • Remote port forwarding (Reverse SSH)
1
ssh -R 5900:localhost:22 guest@remote-pc
  • SOCKS Proxy Forwarding
1
ssh -C -D 8080 cwliu@123.123.123.123

SSH Tunnel
備份圖

Local port forwarding 和 SOCKS Proxy Forwarding
感覺兩個都好像

有看到上班族ssh tunnel求生手冊 [論壇 - Ubuntu 與工具程式及軟體推薦] | Ubuntu 正體中文站
備份圖

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
範例1:
在公司,透過外面的電腦當proxy,連到外面。
ssh -NfD 8888 remote_ip
-N : 不執行任何命令
-f : 在背景執行
-D : 建socks5 的proxy
這時候,瀏覽器和msn在socks 5 proxy設定的欄位填上localhost:8888 。
連出去的連驗就是加密,並且是穿過remot_ip的連線。

範例2:
在公司,透過外面的電腦連BBS。
ssh -NfL 2323:bbs.gamer.com.tw:23 remote_ip
-L : 將local port 轉向
telnet localhost 2323 就可以連到巴哈,而且是加密的。
也可用PCManx連localhost 2323也是一樣的意思。

範例3:
有時候假日,想要連回公司加個班。
但是公司是NAT,所以沒辦法這樣作。
可以運用TCP雙向傳輸的特性來辦到這件事。
ssh -NfR 2222:localhost:22 remote_ip
-R : 將remote port轉向 

....

範例一和範例二差別在於 SOCKS Proxy 的建立。這是因為 HTTP Proxy 會貼上/處理/取下額外的資訊,不能直接轉送(Forwarding)。範例二就真的是照本宣科地轉送。(當然,兩者轉送之前都有加密。)

簡單來說Local port forwarding只能對外一個port轉出去,所以不能用在看網頁上面
但是SOCKS Proxy Forwarding就可以對印remote可以連到的主機做連線(而且是多個)
這個用在網頁上面很方便

當然還有查了一些:
除了目前連mysql感覺其他地方目前用不上
所以先留著筆記

Date: 2018-12-20

Filezilla預設沒有做ssh tunnel
但有找到WinScp能做到