Thay vì sử dụng mật khẩu để xác thực, SSH Key giúp tăng tính bảo mật cho các kết nối SSH đến máy chủ Linux. SSH Key dựa trên cơ chế mã hóa khóa công khai (public key) và khóa riêng (private key).
Trong bài viết này, tôi sẽ hướng dẫn các bước để kết nối SSH đến máy chủ Linux sử dụng SSH Key.
Bước 1: Tạo khóa SSH trên máy khách
Đầu tiên, bạn cần tạo một cặp khóa SSH trên máy khách bằng công cụ ssh-keygen:
ssh-keygen -t rsa
Nhấn Enter để lưu khóa vào vị trí mặc định là thư mục ~/.ssh/id_rsa. Bạn sẽ có 2 file được tạo ra:
- id_rsa: Khóa private key, luôn được lưu trữ bí mật trên máy khách.
- id_rsa.pub: Khóa public key, dùng để copy vào máy chủ.
Bước 2: Copy khóa public lên máy chủ
Có 2 cách để copy khóa public từ máy khách lên máy chủ:
- Sử dụng ssh-copy-id, lệnh này sẽ tự động copy id_rsa.pub vào file ~/.ssh/authorized_keys trên máy chủ:
ssh-copy-id username@server_ip
- Copy trực tiếp nội dung id_rsa.pub và paste vào cuối file ~/.ssh/authorized_keys trên máy chủ.
Bước 3: Disable password authentication trên máy chủ
Để bắt buộc xác thực bằng SSH key, ta cần tắt xác thực mật khẩu trong file cấu hình sshd_config trên máy chủ:
sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
Lưu lại và restart ssh service:
sudo systemctl restart sshd
Bước 4: Kết nối SSH từ máy khách tới máy chủ
Giờ ta có thể sử dụng SSH Key để kết nối tới máy chủ. Chạy lệnh:
ssh username@server_ip
SSH sẽ tự động tìm khóa private key (id_rsa) trong ~/.ssh của máy khách và xác thực với khóa public trên máy chủ mà không cần nhập mật khẩu.
Như vậy, bạn đã có thể kết nối SSH đến máy chủ Linux sử dụng SSH Key. Cách này giúp tăng tính bảo mật cho các kết nối SSH thay vì dùng mật khẩu truyền thống.