在前面兩篇文章裡,我提到如何利用 SSH Tunnel 的技術來保護遠端的 MySQL 連線。在第二種作法中,使用者利用自己的電腦達成 SSH Tunnel 的功能。因為大多數的使用者為 Windows 環境,所以在這篇文章中,我將示範如何在 Windows 的環境下設置 SSH Tunnel 以提供遠端 MySQL 連線。範例中使用的工具為 Putty,其他類似的 SSH Client 工具多也提供同樣的功能。
- 開啟 Putty
- 新增 Putty 設定
- 完成設定
按下按鈕「Save」即可完成設定。
- 對 SSH 主機進行連結並登入系統
- 進入設定畫面
在連線視窗按下右鍵,並選取 Change Settings…
- 開啟 Tunnel 選項畫面
位置是 Connection –> SSH –>Tunnels。
- 輸入 Tunnel 設定
Source Port 與 Destination 分別輸入 3307 與 192.168.0.20:3306。同樣的,我們選用 3307 當做 SSH Tunnel 的連結埠,以與 MySQL 預設埠號 3306 做一區別。
- 按下按鈕 「Add」 完成新增動作
應可看到下列畫面
- 完成設定
按下按鈕「Apply」即可完成設定。
進行至此,我們就可以利用 MySQL Client 端工具來進行遠端的 MySQL 連線了。後面的例子我將以 MySQL Query Browser 為例。
- 開啟 MySQL Query Browser
- 設定 MySQL 連線資訊
Server Host 與 Port 分別填入 127.0.0.1 與 3307。此外,請填入 MySQL 的帳號/密碼。
- 進行連線
按下按鈕「OK」就可以連線到遠端的 MySQL 資料庫。雖然畫面上顯示是本機的 IP (127.0.0.1),但是實際上卻是連到遠端站台的資料庫主機,也就是 192.168.0.20。
- 確認 MySQL 的權限
因為 MySQL 的權限會根據帳號以及登入 IP 的不同而改變,所以需要特別注意原本的權限設定。以上述的例子而言,登入的 IP 會是 192.168.0.10,也就是 SSH 主機的內部網段 IP。如果有所不確定,可透過 MySQL 指令 show full processlist 來確認連結的帳號與 IP。也就是說,在這個作法下內部網路的資料傳輸是沒有經過加密的。
利用 Putty 的 SSH Tunnel 功能,我們就可以在 Windows 下利用各式各樣的管理工具來操作 MySQL 資料庫,而且不用再擔心資料外洩的問題。
沒有留言:
張貼留言