NỘI DUNG
Hướng dẫn sử dụng SSH Key chi tiết, từ cách tạo, cài đặt, đến kết nối máy chủ an toàn. Tìm hiểu lợi ích và ứng dụng của SSH Key để bảo mật truy cập máy chủ hiệu quả.
SSH Key là gì?
SSH Key là cặp khóa mật mã (public key và private key) dùng để xác thực người dùng khi kết nối với máy chủ SSH một cách an toàn.
- Public key (khóa công khai): Lưu trên máy chủ SSH.
- Private key (khóa bí mật): Lưu trên máy tính cá nhân của người dùng.
Khi kết nối, máy chủ sử dụng public key để tạo một dấu vân tay, máy khách dùng private key để tạo dấu vân tay tương ứng. Nếu hai dấu vân tay khớp, người dùng được xác thực thành công.
Lợi ích của SSH Key
- Bảo mật cao: An toàn hơn mật khẩu vì không cần nhập mật khẩu mỗi lần kết nối.
- Quản lý dễ dàng: Một cặp khóa có thể dùng cho nhiều máy chủ.
- Đa dạng ứng dụng: Hỗ trợ truy cập máy chủ, truyền tệp qua SCP/SFTP, chạy lệnh từ xa, hoặc sử dụng trong Git.
Ứng dụng của SSH key:
- Truy cập máy chủ SSH: Xác thực an toàn khi đăng nhập máy chủ.
- Truyền tệp an toàn: Sử dụng SCP/SFTP để truyền tệp.
- Chạy lệnh từ xa: Thực thi lệnh trên máy chủ một cách bảo mật.
- Tích hợp với công cụ khác: Hỗ trợ các ứng dụng như Git, Jenkins, hoặc các hệ thống CI/CD.
Hướng dẫn sử dụng SSH Key
1. Tạo SSH Key
Sử dụng lệnh ssh-keygen
để tạo cặp khóa SSH trên máy tính cá nhân. Lệnh này sẽ tạo ra một cặp khóa mật mã trong thư mục ~/.ssh.
ssh-keygen
Lệnh này sẽ hỏi bạn một số thông tin, bao gồm:
- Tên khóa: Bạn có thể đặt tên khóa bất kỳ.
- Đường dẫn khóa: Bạn có thể để mặc định là
~/.ssh/id_rsa
. - Mật khẩu khóa: Bạn có thể đặt mật khẩu khóa nếu muốn.

Sau khi chạy lệnh, bạn sẽ có hai file:
- quandt: Đây là Private key sẽ lưu ở máy cá nhân
- quandt.pub: Đây là public key, chuổi key này sẽ đưa lên Server

2. Cài đặt SSH Key trên máy chủ
Để sử dụng SSH Key, cần thêm public key vào máy chủ:
Cách 1: Sử dụng lệnh ssh-copy-id
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip-server
Thay user@host
bằng thông tin đăng nhập, ví dụ: [email protected]
thì dùng lệnh như sau
ssh -i /Users/quandt/.ssh/quan [email protected]
Cách 2: Sử dụng lệnh cat
Bạn có thể sử dụng lệnh cat để chuyển khóa công khai sang máy chủ SSH.
cat ~/.ssh/id_rsa.pub | ssh root@ip-server 'cat >> ~/.ssh/authorized_keys'
Cách 3: Thêm thủ công
Đăng nhập vào máy chủ qua SSH (dùng mật khẩu nếu chưa cài key). Mở file ~/.ssh/authorized_keys:
vi ~/.ssh/authorized_keys
Dán nội dung của file id_rsa.pub
vào cuối file và lưu lại. Và phân quyền cho file
chmod 600 ~/.ssh/authorized_keys
3. Kiểm tra cài đặt
Thử kết nối để đảm bảo SSH Key hoạt động:
ssh -i ~/.ssh/id_rsa root@ip-server
Nếu không cần nhập mật khẩu, cài đặt đã thành công.
4. Kết nối với máy chủ bằng SSH Key
Sử dụng lệnh ssh với tùy chọn -i để chỉ định private key:
ssh -i ~/.ssh/id_rsa root@ip-server
Ví dụ thực tế:
ssh -i ~/.ssh/quandt [email protected]
Để tránh nhập tùy chọn -i
mỗi lần, bạn có thể cấu hình file ~/.ssh/config
.
Host dotrungquan
HostName 123.123.123.123
User root
IdentityFile ~/.ssh/quandt
Sau đó, chỉ cần chạy lệnh sau là ssh trực tiếp vào. Hiểu đơn giản đây giống như là Alias hoặc shortcut.
ssh dotrungquan
4. Thay đổi mật khẩu SSH Key
Để thay đổi mật khẩu SSH Key, bạn có thể sử dụng lệnh ssh-keygen
với tùy chọn -p
ssh-keygen -p
Lệnh này sẽ yêu cầu bạn nhập mật khẩu hiện tại của khóa, sau đó sẽ yêu cầu bạn nhập mật khẩu mới.
5. Xóa SSH Key
Để xóa SSH Key, bạn có thể sử dụng lệnh ssh-keygen
với tùy chọn -f
ssh-keygen -f ~/.ssh/id_rsa -delete
Hoặc
rm ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
Lệnh này sẽ xóa khóa công khai và khóa bí mật khỏi thư mục ~/.ssh
.
Lưu ý: Xóa key sẽ khiến bạn không thể kết nối tới các máy chủ đã cài public key tương ứng. Hãy đảm bảo bạn không cần key này trước khi xóa.
Một số lưu ý khi sử dụng SSH Key:
- Bảo vệ private key: Không chia sẻ private key với bất kỳ ai. Lưu trữ ở nơi an toàn, tránh sao chép lên các hệ thống không đáng tin cậy.
- Sử dụng mật khẩu cho private key: Nếu lo ngại private key bị đánh cắp, hãy đặt mật khẩu khi tạo key.
- Tạo key riêng cho từng máy chủ: Điều này giúp quản lý dễ dàng và giảm rủi ro nếu một key bị lộ.
- Cập nhật key định kỳ: Thay đổi SSH Key định kỳ để tăng cường bảo mật.
- Sao lưu key: Lưu trữ bản sao private key ở nơi an toàn để tránh mất quyền truy cập nếu máy tính gặp sự cố.