Nội dung bài viết
Giới thiệu
Để sync dữ liệu giữa hai máy chủ mà không cần nhập password, chúng ta có thể sử dụng phương thức SSH Key. SSH key cho phép bạn truy cập máy chủ từ xa mà không cần nhập mật khẩu, thay vào đó bạn chỉ cần sử dụng một khóa bảo mật để xác thực chúng.
Bài viết liên quan:
– Hướng dẫn tạo SSH Key trên MacOS
– Hướng dẫn sử dụng SSH Key để SSH vào VPS/SERVER
Ví dụ ở đây mình có 2 VPS:
- VPS A: VPS nguồn
- VPS B: VPS đích
Các bước thực hiện
Dưới đây là hướng dẫn cơ bản để sync dữ liệu giữa 2 VPS sử dụng SSH Key:
Bước 1: Tạo khóa SSH trên VPS nguồn
Tại VPS A (Nguồn) các bạn thực hiện như sau:
- Tạo SSH KEY
ssh-keygen -t rsa
Lưu ý: Các bạn chỉ ấn duy nhất phím Enter cho đến hết
Như vậy là bạn đã tạo thành công Private Key (id_rsa) và Public Key (id_rsa.pub)
- Xem Public Key
Bạn có thể sử dụng lệnh cat ~/.ssh/id_rsa.pub
để xem Public Key đã tạo
Bước 2: Thêm Public Key vào máy chủ đích
Tại VPS B (Đích) các bạn thực hiện như sau:
- Tạo File lưu Public Key
Bây giờ các bạn hãy tạo nhanh File có tên authorized_keys
trên VPS B để lưu Public Key của VPS A vào.
mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh
- Copy Public Key của VPS A vào tệp
authorized_keys
vừa tạo
Bạn mở File authorized_keys
bằng lệnh bên dưới, sau đó sao chép nội dung Public Key của VPS A vào và lưu lại.
vi ~/.ssh/authorized_keys
Bước 3: Kiểm tra kết nối
Sau khi cấu hình xong, các bạn hãy kiểm tra thử việc sync dữ liệu từ VPS A sang VPS B như sau:
- Đứng tại VPS A
Các bạn sử dụng lệnh rsync hoặc scp với cú pháp bên dưới để sync thử dữ liệu sang VPS B
rsync -avz ten_file root@IP_VPS_B:/duong_dan
Như vậy mình đã có thể sync dữ liệu từ VPS A sang VPS B mà không cần nhập password thủ công như trước, việc thiết lập này sẽ giúp ích cho bạn khá nhiều nếu như bạn cần thiết lập các cron sync dữ liệu tự động.
Chúc các bạn thực hiện thành công.!