nvaicat mysql ssh 跳板機(堡壘機???)鏈接服務器

跳板機(Jump Server),也稱堡壘機,是一類可做爲跳板批量操做遠程設備的網絡設備,是系統管理員或運維人員經常使用的操做平臺之一。mysql

 

正常的登陸流程

使用ssh命令登陸跳板機;

登陸跳板機成功後,在跳板機分配的終端中使用ssh命令再登陸開發機,跳板機和開發機之間採用帶密碼的ssh驗證,所以須要輸入ssh私鑰的密碼。
sql

 

 

ssh隧道(經過跳板機)鏈接mysqlshell

案例:數據庫

A服務器   B服務器   C服務器mysql安全

如今mysql服務器C只能經過內網訪問,B服務器就能經過內網鏈接訪問到mysql服務器

A服務器沒法直接鏈接C服務器mysql,因此要經過跳板機(跳板機指的是B服務器)鏈接mysql網絡

實現:運維

在A服務器下面執行命令ssh

ssh -p {ssh_port} -i {rsa_file} -fNL {local_port}:{mysql_ip}:{mysql_port} {ssh_user}@{ssh_ip}
ssh -p 22 -i ./id_rsa_jump -fNL 33060:mysql_ip:3306 jump@jump_ip # 實例
 
命令詳解:
  • -p {ssh_port}: 指定跳板機器的ssh服務的端口
  • -i {rsa_file}:指定鏈接跳板機的ssh公鑰,由跳板機的ssh服務端生成,若是不指定公鑰或者公鑰驗證失敗則會彈出密碼進行登陸。
  • -f:需進行ssh認證
  • -N:只進行端口轉發,不執行命令
  • -L:指定鏈接服務的格式 [bind_address:]port:host:hostport
  • {local_port}:本地監聽的端口
  • {mysql_ip}:轉發到的mysql的ip或域名
  • {mysql_port}:轉發到的mysql的端口
  • {ssh_port}:跳板機的
  • {ssh_user}:跳板機的ssh用戶名(若是爲rsa登陸,則ras對應的用戶名和ssh_user一致)
  • {ssh_ip}:跳板機的ip或域名
A服務器執行以上命令就能夠鏈接遠程MySQL了
 
測試鏈接:
首先查看端口有沒有監聽執行: ss -ntl

看到3307端口說明監聽了;工具

使用mysql命令開始鏈接:

mysql -h127.0.0.1 -P3307 -uroot -p    (此命令須要注意點-h要填,-P端口是大寫,否則會鏈接到本身本地的mysql而不是遠程的mysql)

鏈接成功以後執行命令:

show databases;

看到的是本身遠程mysql服務器上的數據庫就說明鏈接成功了;

 

navicat使用跳板機鏈接數據庫-ssh(sqlyog同理)

1. 目標數據庫的域名/IP,端口,用戶名,密碼:如圖1

2. 這時候不要點OK!選擇SSH這個tab

3. 選中User SSH Tunnel;填寫跳板機域名/IP,用戶名,密碼(注意:端口22不要變)

4. 點擊OK,保存連接,打開連接完成經過ssh通道鏈接跳板機達到鏈接數據庫的目的navicat使用跳板機鏈接數據庫-ssh(sqlyog同理)。不用每次都重複的在shell裏輸入數據庫連接了

 

推薦

公司內部,爲了安全起見,常常會把開發機和線上機從網絡上面分離開,有時候出於排查問題,須要經過跳板機鏈接到線上數據庫。這裏使用了 SwitchHosts 管理工具讓開發、測試、線上環境切換更容易。

host管理工具SwitchHosts的使用
SwitchHosts高效切換host -- 讓開發,測試,線上環境切換更容易

相關文章
相關標籤/搜索