利用SSH隧道方式連接遠程MySQL服務器

1、簡介:    
    大多數人知道SSH是用來替代R命令集,用於加密的遠程登錄,文件傳輸,甚至加密的FTP(SSH2內置),因此SSH成爲使用極廣的服務之一,不僅如 此,SSH還有另一項非常有用的功能,就是它的端口轉發隧道功能,利用此功能,讓一些不安全的服務象TCP、POP3、SMTP、FTP,LDAP等等通 過SSH的加密隧道傳輸,然後,既然這些服務本身是不安全的,密碼和內容是明文傳送的,通過使用SSH隧道傳輸的話再想在其中間監聽也是徒勞無功的了。本 文主要介紹通過SSH隧道連接遠程Mysql服務器,SSH隧道更詳細的文章參見:官方關於SSH隧道的介紹文章

2、使用Windows客戶端連接

下面介紹使用windows系統下比較流行的MySQL終端工具SQLyog Enterprise,通過SSH隧道連接Mysql服務器。如下圖:

SQLyog_Enterprise_new_connection.png    
新建連接

SQLyog_Enterprise_Mysql_TAB.png    
MySQL標籤頁

SQLyog_Enterprise_SSH_TAB.png    
SSH標籤頁

3、linux命令行下使用ssh命令建立SSH隧道

mysql服務器地址爲:192.168.99.52  
本機地址爲:192.168.99.91

前提  
將本機的ssh public key複製到mysql服務器中,也就是將本機的id_rsa.pub內容添加到mysql服務器的~/.ssh/authorized_keys文件中。我這裏用命令實現。

利用 ssh-keygen 命令 生成本機id_rsa.pub文件  
# ssh-keygen 連續回車生成id_rsa.pub 文件

將id_rsa.pub文件複製到mysql服務器中  
# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.99.52

開始挖隧道    
利用ssh命令在本機開個3388的端口,這個端口爲隧道的入口端口,也就是說我一會兒通過在本機連接這個端口來達到連接mysql服務器3306端口的目的。使用命令如下:

ssh -NCPf [email protected] -L 3388:192.168.99.52:3306

參數解釋      

-C    使用壓縮功能,是可選的,加快速度。    
-P    用一個非特權端口進行出去的連接。    
-f    一旦SSH完成認證並建立port forwarding,則轉入後臺運行。    
-N    不執行遠程命令。該參數在只打開轉發端口時很有用(V2版本SSH支持)

這裏的[email protected] 是登陸mysql服務器的SSH用戶名和IP地址-L 3388:192.168.99.52:3306 這個參數的意思是說在本機開放3388端口到192.168.99.52:3306端口的映射,也就是說隧道的入口爲3388出口爲mysql服務器的3306      

執行完後查看本地連接情況    
# netstat -tulnp | grep 3388    
tcp    0    0 127.0.0.1:3388    0.0.0.0:*    LISTEN    14273/ssh    
tcp    0    0 ::1:3388    :::*    LISTEN    14273/ssh

查看本機與mysql服務器的ssh連接情況    
# netstat -an | grep 192.168.99.52    
tcp    0    0    192.168.99.91:7612    192.168.99.52:9698    ESTABLISHED

通過這兩條命令可知,執行完命令之後,本機與mysql服務器就建立起了ssh連接,且開放了3388端口。

通過隧道連接MySQL服務器

# mysql -u dbname -P 3388 -h 127.0.0.1 -pdbpwd    
Enter password:    
Welcome to the MySQL monitor.  Commands end with ; or \g.    
Your MySQL connection id is 52562    
Server version: 5.1.31-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

[email protected] [(none)] >show databases;  
p_w_picpath    
4 rows in set (0.00 sec)

連接成功!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章