Bản ghi SSHFP cho phép bạn lưu trữ dấu vân tay của các host key của máy chủ trong DNS, giúp đơn giản hóa quá trình xác minh kết nối SSH. Thay vì phải kiểm tra thủ công host key mỗi khi kết nối, client SSH sẽ tự động tra cứu dấu vân tay trong DNS và so sánh với key mà máy chủ cung cấp, giúp tăng cường bảo mật và giảm thiểu rủi ro kết nối đến máy chủ giả mạo.
Để đảm bảo an toàn khi kết nối server, sử dụng SSHFP là giải pháp tối ưu. Nếu bạn đang tìm kiếm VPS giá rẻ để triển khai hệ thống, hãy khám phá các gói VPS chất lượng cao, chi phí hợp lý tại [danh mục VPS giá rẻ], giúp tiết kiệm và bảo mật tối đa.
Nếu bạn sử dụng OpenSSH, có thể bạn đã gặp thông báo yêu cầu xác minh host key như sau:
The authenticity of host 'examplehost.example.org (192.0.2.123)' can't be established. ECDSA key fingerprint is SHA256:MH85JK0yq+JNl1lPKUlxit+dGFqWMS/MmohcINp/e9Q. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Thông báo này sẽ hiển thị dấu vân tay của SSH Host Key, giúp bạn xác nhận rằng máy chủ bạn đang kết nối là chính xác. Khi sử dụng bản ghi SSHFP trong DNS, quá trình xác minh này sẽ được tự động hóa, giúp tiết kiệm thời gian và nâng cao tính bảo mật cho kết nối SSH của bạn.
Yêu cầu tiên quyết
-
VPS Linux đang chạy máy chủ ssh
-
Máy tính Linux có cài đặt OpenSSH client hoặc một VPS Linux khác
-
Tên miền đã được thiết lập DNSSEC
-
Các bản ghi A và (tuỳ chọn) AAAA trỏ đến VPS của bạn
-
Máy chủ DNS hỗ trợ DNSSEC
DNSSEC là cần thiết để các bản ghi SSHFP hoạt động, vì nó cho phép ssh client tin cậy vào thông tin được lưu trong các bản ghi DNS. Việc kích hoạt DNSSEC được đề cập trong [Giới thiệu về DNS DataOnline]. Bạn cũng nên kiểm tra xem DNS resolver mà máy tính bạn sử dụng có hỗ trợ DNSSEC hay không. Nếu không, bạn có thể sử dụng Google Public DNS hoặc dịch vụ 1.1.1.1 của Cloudflare như các lựa chọn miễn phí.
1. Tạo bản ghi SSHFP
Đăng nhập vào VPS của bạn và chạy lệnh sau, thay thế tên ví dụ bằng Fully-Qualified Domain Name (FQDN) của máy chủ:
# ssh-keygen -r examplehost.example.org
2. Cập nhật các bản ghi DNS của tên miền
Thêm các bản ghi SSHFP mà bạn vừa tạo bằng lệnh ssh-keygen vào cấu hình DNS của tên miền. Bạn cần tạo một bản ghi SSHFP mới cho mỗi dòng. Hãy đảm bảo rằng hostname của bản ghi SSHFP trùng khớp với hostname của máy chủ.
3. Kiểm tra các bản ghi DNS mới
Các bản ghi DNS có thể mất một khoảng thời gian để lan truyền trên internet. Bạn có thể kiểm tra xem các bản ghi SSHFP mới đã được cập nhật hay chưa bằng cách sử dụng lệnh dig
. Trên Debian và Ubuntu, bạn có thể cài đặt công cụ này bằng apt-get install dnsutils
4. Kích hoạt xác minh DNS
Mặc định, OpenSSH không xác minh các bản ghi SSHFP. Trên máy tính sử dụng làm ssh client, hãy tạo tệp .ssh/config
trong thư mục chính của bạn và thêm dòng sau:
5. Kết nối đến máy chủ ssh
Nếu trước đây bạn đã kết nối đến máy chủ, hãy xóa dòng bắt đầu bằng hostname của máy chủ đó trong tệp .ssh/known_hosts
của thư mục chính.
Sau đó, sử dụng lệnh ssh như bình thường:
Dù host key của máy chủ không còn có trong tệp known_hosts, bạn sẽ không bị yêu cầu xác minh host key nữa. Điều này có nghĩa là các bản ghi SSHFP đã hoạt động thành công.
Các vấn đề thường gặp
Tìm thấy dấu vân tay host key trùng khớp trong DNS
Đôi khi bạn có thể gặp thông báo như sau:
Thông điệp này thường cho thấy có vấn đề với DNSSEC. OpenSSH có thể tìm thấy các bản ghi SSHFP nhưng không thể xác thực chúng bằng DNSSEC. Bạn nên kiểm tra lại cấu hình DNSSEC cho tên miền của mình bằng một công cụ như DNSViz. Ngoài ra, hãy kiểm tra xem DNS resolver mà hệ thống của bạn sử dụng có hỗ trợ DNSSEC hay không. Bạn có thể kiểm tra bằng lệnh:
Trong kết quả, tìm phần “flags” và kiểm tra xem có tham số ad
hay không (tham số ad
cho biết phản hồi đã được xác thực DNSSEC). Nếu không thấy ad
, hãy kiểm tra lại cấu hình các máy chủ DNS mặc định trên hệ thống. Một số máy chủ của ISP hoặc router gia đình có thể không hỗ trợ đầy đủ DNSSEC.
Lưu ý đối với macOS và Windows
-
Hệ thống DNS trên macOS hiện tại có vẻ không hỗ trợ DNSSEC đúng cách, vì vậy bạn có thể gặp vấn đề tương tự khi kết nối từ thiết bị macOS. Trong trường hợp đó, hãy thử kết nối từ một VPS Linux khác.
-
Các bản build OpenSSH mới nhất cho Windows không hỗ trợ xác minh DNS.
Việc cấu hình SSHFP giúp tăng cường bảo mật khi quản lý server từ xa. Nếu bạn cần thuê VPS để thử nghiệm hoặc triển khai dự án, hãy xem qua các dịch vụ thuê VPS tại DataOnline với tốc độ cao, hỗ trợ 24/7, phù hợp cho mọi nhu cầu.