Khóa SSH
Khóa SSH cho phép bạn đăng nhập vào máy chủ mà không cần mật khẩu. Một cặp khóa bao gồm khóa riêng tư được lưu trên máy tính của bạn và khóa công khai được sao chép vào tệp ~/.ssh/authorized_keys trên máy chủ. Các khóa được tạo bằng ssh-keygen, một phần của OpenSSH.
1Các loại khóa
Khóa Ed25519 ngắn, nhanh và được hỗ trợ bởi tất cả các phiên bản OpenSSH hiện tại; ssh-keygen -t ed25519 sẽ tạo ra một khóa loại này. Khóa RSA vẫn được hỗ trợ cho các hệ thống cũ hơn và nên có độ dài ít nhất 3072 bit.
2Cụm mật khẩu và tác nhân
Cụm mật khẩu (passphrase) giúp mã hóa khóa riêng tư trên đĩa, vì vậy tệp tin bị đánh cắp sẽ không thể bị sử dụng đơn lẻ. ssh-agent giữ khóa đã mở khóa trong bộ nhớ, vì vậy cụm mật khẩu chỉ cần nhập một lần cho mỗi phiên làm việc.
3Quyền truy cập
OpenSSH từ chối các khóa có tệp tin được cấp quyền quá mở. Khóa riêng tư chỉ nên được đọc bởi chủ sở hữu (600), và ~/.ssh cùng authorized_keys trên máy chủ không được phép ghi bởi người dùng khác.
Cách thiết lập đăng nhập bằng khóa
- Tạo khóa trên máy tính của bạn:
ssh-keygen -t ed25519 - Chấp nhận tệp mặc định và nhập cụm mật khẩu.
- Sao chép khóa công khai vào máy chủ:
ssh-copy-id user@server - Đăng nhập để kiểm tra:
ssh user@server - Chỉ sau khi khóa hoạt động, hãy cân nhắc việc tắt đăng nhập bằng mật khẩu trên máy chủ.
Lưu ý
- Không bao giờ chia sẻ hoặc tải lên khóa riêng tư (tệp không có đuôi .pub).
- Kiểm tra đăng nhập bằng khóa trong phiên làm việc thứ hai trước khi tắt xác thực bằng mật khẩu, nếu không bạn có thể tự khóa quyền truy cập của chính mình.
Bài liên quan
- Quyền truy cập tệp: chmod và chownCách thức hoạt động của quyền đọc, ghi và thực thi trên Linux, ý nghĩa của 755 và 644, cũng như cách thay đổi chủ sở hữu và chế độ một cách an toàn.
- UFW (Uncomplicated Firewall)Cách UFW quản lý tường lửa Linux trên Ubuntu, cách cho phép SSH trước khi bật tường lửa, và cách liệt kê cũng như xóa các quy tắc.
- rsyncCách rsync sao chép và đồng bộ hóa tệp, ý nghĩa của dấu gạch chéo ở cuối đường dẫn và cách kiểm tra bằng --dry-run trước khi sử dụng --delete.
Nguồn
- Trang hướng dẫn ssh-keygen(1) (OpenBSD) man.openbsd.org
- Trang hướng dẫn sshd(8), ĐỊNH DẠNG TỆP AUTHORIZED_KEYS (OpenBSD) man.openbsd.org
Xem xét lần cuối: