Lỗi Warning: Remote Host Identification Has Changed là một cảnh báo bảo mật quan trọng cho biết dấu vân tay (fingerprint) của máy chủ từ xa đã thay đổi so với lần kết nối SSH trước đó, điều này có thể xuất phát từ nhiều nguyên nhân khác nhau, bao gồm cả những rủi ro bảo mật nghiêm trọng. Trong bài viết này, mình sẽ cùng bạn tìm hiểu chi tiết về các bước khắc phục hiệu quả và nhanh chóng.
Những điểm chính
- Định nghĩa lỗi Warning: Remote Host Identification Has Changed: Nắm được khái niệm Warning: Remote Host Identification Has Changed là gì và và ý nghĩa bảo mật của cảnh báo này.
- Nguyên nhân gây lỗi: Biết được 2 nguyên nhân chính gây ra lỗi là thay đổi khóa hợp lệ và tấn công giả mạo.
- Hướng dẫn khắc phục lỗi: Được hướng dẫn chi tiết các bước sửa lỗi trên macOS và Linux, Windows.
- Lưu ý quan trọng về bảo mật khi gặp lỗi SSH Host Key: Nâng cao nhận thức về nguy cơ tấn công Man-in-the-Middle, tầm quan trọng của việc xác minh Fingerprint và cách quản lý SSH Keys hiệu quả.
- Câu hỏi thường gặp (FAQ): Giải đáp các câu hỏi thường gặp giúp bạn có cái nhìn toàn diện và tự tin hơn khi xử lý lỗi.
Lỗi Warning: Remote Host Identification Has Changed là gì?
Lỗi “warning: remote host identification has changed” là một thông báo bảo mật từ giao thức SSH, xuất hiện khi khóa nhận dạng của máy chủ từ xa không trùng khớp với khóa đã được lưu trữ trong tệp known_hosts trên máy tính của người dùng từ các phiên kết nối trước.
Cơ chế bảo mật của SSH yêu cầu lưu lại một dấu vân tay kỹ thuật số của máy chủ trong lần kết nối đầu tiên. Trong các lần truy cập tiếp theo, hệ thống sẽ tự động đối chiếu khóa hiện tại của máy chủ với dấu vân tay đã được lưu. Việc phát sinh cảnh báo này là một biện pháp an ninh thiết yếu nhằm ngăn chặn các cuộc tấn công xen giữa (man-in-the-middle).

Nguyên nhân gây lỗi Remote Host Identification Has Changed!
Cảnh báo lỗi Warning: Remote Host Identification Has Changed có thể xuất phát từ hai nguyên nhân chính:
- Thay đổi khóa hợp lệ: Máy chủ từ xa đã được cài đặt lại hệ điều hành, cấu hình lại SSH, hoặc nhà cung cấp dịch vụ đã thay đổi khóa SSH của máy chủ. Đây là lý do phổ biến và an toàn.
- Tấn công giả mạo (Man-in-the-Middle – MITM): Một kẻ tấn công đang cố gắng giả mạo máy chủ đích bằng cách chặn kết nối và cung cấp một khóa SSH giả mạo để đánh cắp thông tin đăng nhập của bạn.

Hướng dẫn khắc phục lỗi Remote Host Identification Has Changed!
Trước khi khắc phục lỗi, bạn hãy liên hệ với quản trị viên hệ thống hoặc nhà cung cấp dịch vụ của bạn để hỏi xem họ có thực hiện thay đổi nào trên máy chủ không (như cài lại OS, nâng cấp,…). Nếu có, bạn yêu cầu họ cung cấp SSH key fingerprint mới để có thể đối chiếu. Chỉ khi chắc chắn rằng sự thay đổi này là hợp lệ, bạn mới nên tiếp tục các bước dưới đây.
Khắc phục trên macOS và Linux
1. Sử dụng lệnh ssh-keygen -R
Bước 1: Bạn đọc thông báo lỗi trên Terminal để xác định chính xác hostname hoặc địa chỉ IP gây ra lỗi.

Bước 2: Bạn mở Terminal của mình và gõ lệnh sau, thay [hostname_hoac_IP_address] bằng thông tin của bạn:
ssh-keygen -R [hostname_hoac_IP_address]
Ví dụ: ssh-keygen -R 192.168.1.100 hoặc ssh-keygen -R server.example.com.
![Gõ lệnh ssh-keygen -R [hostname_hoac_IP_address]](https://nguyenhung-io-prod.s3.vn-hcm-1.vietnix.cloud/wp-content/uploads/2025/09/20251112_100708_warn2.jpg)
Bước 3: Bạn sẽ thấy thông báo xác nhận tệp known_hosts đã được cập nhật, hãy thực hiện kết nối lại bằng lệnh ssh user@hostname. Lần này, SSH sẽ hỏi bạn có muốn tiếp tục kết nối và lưu key mới không, bạn gõ yes và nhấn Enter.

2. Chỉnh sửa thủ công file ~/.ssh/known_hosts
Phương pháp này hữu ích khi bạn muốn xem xét nội dung file hoặc khi ssh-keygen -R không hoạt động.
Bước 1: Bạn đọc kỹ thông báo lỗi, tại thông báo thường chỉ rõ số dòng chứa key cần xóa, ví dụ: “Offending key in /home/user/.ssh/known_hosts:40“.

Bước 2: Bạn mở Terminal và dùng một trình soạn thảo văn bản như nano:
nano ~/.ssh/known_hostsBước 3: Bạn di chuyển đến dòng được chỉ định trong thông báo lỗi và xóa toàn bộ dòng đó.

Bước 4: Bạn lưu lại thay đổi và thoát, sau đó kết nối lại và chấp nhận key mới.

Khắc phục trên Windows
Cách khắc phục trên Windows phụ thuộc vào SSH client bạn đang sử dụng.
1. Đối với OpenSSH Client
Khi sử dụng OpenSSH Client, hệ thống sẽ tạo ra một tệp known_hosts để lưu trữ khóa của các máy chủ. Quá trình xử lý bao gồm các bước sau:
Bước 1: Đầu tiên, bạn mở thanh tìm kiếm của Windows và nhập lệnh %USERPROFILE%. Thao tác này sẽ mở thư mục cá nhân của người dùng trong File Explorer.

Bước 2: Bên trong thư mục vừa mở, bạn cần tìm và truy cập vào thư mục con có tên là .ssh. Tệp cần chỉnh sửa là known_hosts, nằm trong thư mục .ssh này.

Bước 3: Bạn sử dụng một trình soạn thảo văn bản như Notepad để mở tệp known_hosts. Sau đó, xác định và xóa toàn bộ dòng chứa khóa của máy chủ đang gây ra lỗi. Cuối cùng, bạn lưu lại những thay đổi vừa thực hiện.

2. Đối với PuTTY
PuTTY không sử dụng file known_hosts mà lưu trữ host keys trong Windows Registry.
Lưu ý
Chỉnh sửa Windows Registry có thể gây ra sự cố hệ thống nếu thực hiện sai, vì vậy bạn hãy sao lưu Registry trước khi tiếp tục.
Bước 1: Đầu tiên, bạn cần đóng tất cả các phiên PuTTY đang chạy. Sau đó bạn nhấn phím Windows + R, gõ regedit và nhấn Enter để mở Registry Editor.
Bước 2: Trong thanh địa chỉ của Registry Editor, bạn dán đường dẫn sau và nhấn Enter:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeysBước 3: Ở khung bên phải, bạn sẽ thấy danh sách các khóa đã lưu. Tên của các khóa này có dạng như ssh-ed25519@22:103.90.227.142.

Bước 4: Tiếp theo, bạn tìm khóa tương ứng với hostname hoặc IP bị lỗi, nhấp chuột phải vào đó và chọn Delete, sau đó xác nhận xóa và đóng Registry Editor.
Bước 5: Bạn mở lại PuTTY và kết nối. Một cửa sổ PuTTY Security Alert sẽ hiện ra với fingerprint mới, bạn nhấn Accept (hoặc Yes) để lưu lại.

Những lưu ý quan trọng về bảo mật khi gặp lỗi SSH Host Key
- Nhận diện nguy cơ tấn công Man-in-the-Middle: Khi xuất hiện cảnh báo SSH Host Key thay đổi, đây có thể là dấu hiệu bạn đang đối mặt với nguy cơ bị tấn công (Man in the middle), kẻ xấu có thể giả mạo máy chủ để đánh cắp dữ liệu truyền qua SSH.
- Xác minh fingerprint (dấu vân tay SSH Key) trước khi tiếp tục: Bạn hãy luôn kiểm tra và xác nhận lại fingerprint của SSH Key bằng cách so sánh với thông tin mà quản trị viên hệ thống hoặc nhà cung cấp dịch vụ cung cấp, chỉ tiếp tục kết nối sau khi xác minh chính xác.
- Quản lý SSH Keys hiệu quả: Thường xuyên kiểm tra, loại bỏ các SSH Key không còn sử dụng, cập nhật thông tin SSH Key mới của bạn và đảm bảo quyền truy cập chỉ cấp cho người được phép.
- Bảo mật tài khoản quản trị: Bạn nên sử dụng mật khẩu mạnh, xác thực hai lớp (2FA) khi có thể để tăng cường an toàn cho tài khoản kết nối SSH, giảm thiểu rủi ro khi có sự cố key host.

Câu hỏi thường gặp
Tại sao tôi không nên sử dụng StrictHostKeyChecking=no?
Tùy chọn StrictHostKeyChecking=no? sẽ vô hiệu hóa hoàn toàn việc kiểm tra host key, khiến máy tính của bạn tự động chấp nhận bất kỳ key nào mà máy chủ gửi đến. Cách này có thể tạo cơ hội cho các cuộc tấn công man-in-the-middle. Vì vậy, bạn tuyệt đối không dùng tùy chọn này cho máy chủ production.
Làm thế nào để tìm ra fingerprint mới của máy chủ?
Bạn có thể tìm fingerprint mới bằng các cách sau:
– Đăng nhập vào control panel của nhà cung cấp dịch vụ.
– Truy cập console của máy chủ và chạy lệnh ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub.
– Liên hệ với bộ phận hỗ trợ kỹ thuật của nhà cung cấp.
Tôi có cần phải sao lưu file known_hosts trước khi chỉnh sửa không?
Có thể. Bạn hãy tạo một bản sao lưu nhanh bằng lệnh:cp ~/.ssh/known_hosts ~/.ssh/known_hosts.bak
Việc này giúp bạn dễ dàng khôi phục nếu vô tình xóa nhầm dòng.
Lỗi này có ảnh hưởng đến các kết nối SSH khác không?
Không. Lỗi này chỉ cụ thể cho máy chủ có host key bị thay đổi. Các kết nối khác tới các máy chủ khác đã được lưu trong file known_hosts của bạn hoàn toàn không bị ảnh hưởng.
Khi gặp cảnh báo “Warning: Remote Host Identification Has Changed” trong quá trình kết nối SSH, bạn tuyệt đối không nên bỏ qua mà cần chủ động xác minh lại dấu vân tay SSH Host Key để đảm bảo tính an toàn và phòng tránh rủi ro bị tấn công Man-in-the-Middle. Quản lý SSH Key đúng cách kết hợp với việc kiểm tra kỹ lưỡng các thay đổi bất thường sẽ giúp bạn bảo vệ hệ thống và dữ liệu khỏi các nguy cơ xâm nhập trái phép hiệu quả.




