Chúng tôi có thể truy cập MySQL một cách an toàn trên một hệ thống từ xa bằng cách kết nối MySQL qua đường hầm SSH. Hướng dẫn này cung cấp các bước cần thiết để kết nối từ xa với máy chủ MySQL qua đường hầm SSH bằng Putty trên Windows và SSH trên hệ thống Linux. Nó chỉ ra cách chuyển tiếp cổng cục bộ của MySQL, tức là 3306 đến cổng từ xa của MySQL, tức là 3306 thông qua cổng SSH 22 của hệ thống từ xa. Điều này đảm bảo rằng chúng tôi đang giao tiếp an toàn với máy chủ từ xa qua cổng 22, bằng cách kết nối cổng cục bộ 3306 với cổng 3306 trên máy chủ từ xa.
Điều kiện tiên quyết
Một máy chủ từ xa có máy chủ MySQL được cài đặt trên đó. Bạn có thể làm theo Cách cài đặt MySQL 8 trên Ubuntu 20.04 LTS.
Ngoài ra, hãy đảm bảo rằng cổng 22 đang mở và cổng 3306 bị chặn bởi tường lửa trên hệ thống từ xa có máy chủ MySQL. Hướng dẫn này cũng giả định rằng máy chủ MySQL không chạy trên hệ thống cục bộ. Điều này đảm bảo rằng cổng 3306 trên hệ thống cục bộ được miễn phí để chuyển tiếp cổng.
Chúng tôi cũng cần quyền truy cập SSH vào hệ thống mà máy chủ MySQL được cài đặt và chạy trên đó. Chúng tôi có thể sử dụng tên người dùng và mật khẩu SSH hoặc tên người dùng SSH và khóa để kết nối với hệ thống từ xa.
Cài đặt Putty trên Windows 10
Chúng tôi có thể sử dụng Putty trên hệ thống Windows để truy cập máy chủ MySQL được cài đặt trên máy chủ từ xa. Trong trường hợp bạn đang sử dụng hệ thống dựa trên Linux, bạn có thể chuyển đến phần SSH.
Mở Trang tải xuống chính thức của Putty để tải xuống trình cài đặt MSI như được đánh dấu trong Hình 1.
Hình 1
Chúng ta cũng có thể sử dụng tệp thực thi Putty mà không cần cài đặt nó. Cuộn xuống Trang tải xuống để tải xuống tệp thực thi.
Bây giờ khởi chạy Putty. Các tùy chọn mặc định của Putty phải tương tự như Hình 2.
Hình 2
Kết nối an toàn với MySQL bằng Putty
Phần này cung cấp các bước sử dụng Putty để kết nối an toàn với MySQL qua đường hầm SSH từ một hệ thống từ xa. Bây giờ điền vào các chi tiết máy chủ từ xa như được hiển thị trong Hình 3.
Hình 3
Ngoài ra, nhấp vào Kết nối -> SSH -> Đường hầm như được đánh dấu trong Hình 3. Bây giờ điền vào chi tiết chuyển tiếp cổng SSH như được hiển thị trong Hình 4. Cổng Nguồn phải được đặt thành 3306 và Đích phải được đặt thành 127.0.0.1:3306 .
Hình 4
Nhấp vào Nút Thêm sau khi điền vào cổng Nguồn và Đích. Nó sẽ cập nhật Các cổng được chuyển tiếp như được hiển thị trong Hình 4. Ngoài ra, hãy nhấp vào Tùy chọn xác thực và chọn khóa SSH như được hiển thị trong Hình 5. Đảm bảo rằng bạn đã tạo Khóa cá nhân bằng Puttygen.
Hình 5
Bây giờ hãy nhấp vào Nút mở để mở kết nối. Nó sẽ hiển thị cảnh báo bảo mật lần đầu tiên như trong Hình 6.
Hình 6
Nhấp vào Nút Có để chấp nhận kết nối. Nó sẽ yêu cầu cụm mật khẩu trong trường hợp bạn đã đặt trong khi tạo khóa cá nhân. Khi kết nối thành công, nó sẽ hiển thị chi tiết hệ thống từ xa như trong Hình 7.
Hình 7
Ngoài việc kết nối qua SSH, nó cũng chuyển tiếp cổng cục bộ 3306 đến cổng 3306 trên máy chủ từ xa. Không đóng Putty vì nó giữ cho đường hầm SSH mở đối với máy chủ từ xa. Bây giờ khởi chạy bất kỳ Máy khách MySQL nào và cố gắng kết nối với máy chủ MySQL từ xa. Tôi đã sử dụng MySQL Workbench cho mục đích trình diễn. Màn hình chính của Workbench sẽ tương tự như Hình 8. Bạn cũng có thể làm theo Cách sử dụng Workbench để kết nối với máy chủ MySQL từ xa qua đường hầm SSH.
Hình 8
Bây giờ hãy nhấp vào Biểu tượng dấu cộng để tạo Kết nối cục bộ mới như được đánh dấu trong Hình 8. Nó sẽ hiển thị các tùy chọn để Thêm kết nối như được hiển thị trong Hình 9.
Hình 9
Cung cấp tên kết nối và giữ Tên máy chủ là 127.0.0.1 và Cổng là 3306 như trong Hình 9. Bây giờ hãy nhấp vào Kết nối thử nghiệm để kiểm tra kết nối với máy chủ MySQL từ xa qua đường hầm SSH. Nó sẽ yêu cầu Mật khẩu như thể hiện trong Hình 10 trong trường hợp bạn chưa lưu trữ nó trong Vault.
Hình 10
Bây giờ hãy điền mật khẩu và nhấp vào Nút OK để kiểm tra kết nối. Nó sẽ hiển thị một thông báo thành công về kết nối thành công như được hiển thị trong Hình 11.
Hình 11
Bây giờ hãy nhấp vào Nút OK để đóng thông báo kết nối và nhấp lại vào Nút OK để đóng trình hướng dẫn kết nối. Nó sẽ thêm kết nối vào thư viện kết nối như trong Hình 12.
Hình 12
Bây giờ hãy nhấp vào kết nối mới được thêm vào. Nó sẽ kết nối với máy chủ từ xa và liệt kê các cơ sở dữ liệu của máy chủ MySQL từ xa như trong Hình 13.
Hình 13
Bây giờ chúng ta có thể làm việc trên máy chủ MySQL từ xa bằng Workbench trên hệ thống cục bộ. Ngoài ra, hãy đóng Workbench và Putty để chấm dứt kết nối sau khi hoàn thành công việc trên máy chủ MySQL từ xa.
Kết nối an toàn với MySQL bằng SSH
Chúng ta có thể kết nối với máy chủ MySQL từ xa bằng cách chuyển tiếp cổng cục bộ 3306 đến cổng từ xa 3306 bằng lệnh SSH như hình dưới đây. Tương tự như phần trước, hãy đảm bảo rằng cổng cục bộ 3306 là miễn phí.
Ghi chú :Các lệnh được đề cập dưới đây đã được thử nghiệm trên Ubuntu Desktop. Các bước và lệnh phải tương tự trên các hệ thống Linux khác.
# Shutdown local MySQL - Else use a different local port
sudo service mysql stop
# Install MySQL Client - If required
sudo apt install mysql-client
# Port Forwarding - Command
ssh -N -L 3306:127.0.0.1:3306 [USER]@[SERVER_IP]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i [SSH Key] [USER]@[SERVER_IP]
# Port Forwarding - Example
ssh -N -L 3306:127.0.0.1:3306 [email protected]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i example.pem [email protected]
Các lệnh nêu trên mở đường hầm SSH và kết nối cổng cục bộ 3306 với cổng từ xa 3306. Bây giờ chúng ta có thể kết nối với máy chủ MySQL từ xa bằng máy khách MySQL. Bạn có thể tham khảo phần trước để sử dụng MySQL Workbench được cài đặt trên hệ thống cục bộ.
Ngoài ra, hãy tham khảo Hình 14 và Hình 15 để mở đường hầm SSH và kết nối với máy chủ MySQL từ xa.
Hình 14
Hình 15
Tóm tắt
Hướng dẫn này cung cấp các bước cần thiết để kết nối với máy chủ MySQL từ xa qua đường hầm SSH dành cho hệ thống Windows và Linux.