1. 程式人生 > >mysql ssh 跳板機(堡壘機???)連接服務器

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

ever log 指定 ddr use 數據庫鏈接 打開鏈接 tails databases

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

正常的登錄流程

使用ssh命令登錄跳板機;

登錄跳板機成功後,在跳板機分配的終端中使用ssh命令再登錄開發機,跳板機和開發機之間采用帶密碼的ssh驗證,因此需要輸入ssh私鑰的密碼。

技術分享圖片

ssh隧道(通過跳板機)連接mysql

案例:

A服務器 B服務器 C服務器mysql

現在mysql服務器C只能通過內網訪問,B服務器就能通過內網連接訪問到mysql

A服務器無法直接連接C服務器mysql,所以要通過跳板機(跳板機指的是B服務器)連接mysql

實現:

在A服務器下面執行命令

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 [email protected]_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通道連接跳板機達到連接數據庫的目的技術分享圖片。不用每次都重復的在shell裏輸入數據庫鏈接了

推薦

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

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

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