NỘI DUNG
Sửa Lỗi SSH: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

1. Lỗi này là gì?
Lỗi này xảy ra khi SSH phát hiện rằng khóa nhận dạng (host key) của máy chủ từ xa (ở đây là 1.1.244.160
) đã thay đổi so với lần kết nối trước đó. Điều này được ghi nhận trong tệp known_hosts trên máy của bạn (đường dẫn: /Users/quandt/.ssh/known_hosts
).
SSH sử dụng cơ chế này để bảo mật: mỗi máy chủ có một khóa nhận dạng duy nhất (host key), và khi bạn kết nối lần đầu, khóa này được lưu vào tệp known_hosts
. Trong các lần kết nối sau, SSH sẽ so sánh khóa từ máy chủ với khóa đã lưu. Nếu chúng không khớp, SSH sẽ cảnh báo vì có hai khả năng:
- Trường hợp nguy hiểm: Ai đó đang cố gắng giả mạo máy chủ (tấn công man-in-the-middle) để đánh cắp thông tin của bạn.
- Trường hợp bình thường: Khóa của máy chủ đã được thay đổi hợp lệ (ví dụ: máy chủ được cài lại hệ điều hành, hoặc quản trị viên cập nhật khóa).
2. Nguyên nhân cụ thể trong trường hợp của bạn
Dòng Offending ECDSA key in /Users/quandt/.ssh/known_hosts:3
cho biết khóa cũ của máy chủ 1.1.244.160
được lưu ở dòng thứ 3 trong tệp known_hosts
không còn khớp với khóa mới mà máy chủ gửi về.
Dòng The fingerprint for the RSA key sent by the remote host is SHA256:TeJqjuRZFIOwmuOu1ossNMZd1GPq1r09+m1KIUdk3/E
cung cấp dấu vân tay (fingerprint) của khóa mới từ máy chủ.
3. Cách xử lý lỗi này
Dưới đây là các bước để khắc phục lỗi một cách an toàn:
Bước 1: Xác minh lý do thay đổi khóa
- Nếu bạn là quản trị viên của máy chủ hoặc có thể liên hệ với quản trị viên, hãy hỏi xem khóa của máy chủ
1.1.244.160
có được thay đổi hợp lệ không (ví dụ: do cài lại hệ điều hành, thay đổi cấu hình SSH, v.v.). - Nếu không chắc chắn, hãy cẩn thận vì đây có thể là dấu hiệu của tấn công. Trong trường hợp nghi ngờ, sử dụng kênh liên lạc an toàn (như email hoặc điện thoại) để xác nhận với quản trị viên.
Bước 2: Xóa khóa cũ trong tệp known_hosts
Nếu bạn xác nhận rằng sự thay đổi khóa là hợp lệ, bạn cần xóa khóa cũ khỏi tệp known_hosts
để SSH chấp nhận khóa mới.
1. Mở terminal trên máy của bạn.
2. Sử dụng lệnh sau để chỉnh sửa tệp known_hosts
:
nano /Users/quandt/.ssh/known_hosts
Hoặc dùng bất kỳ trình chỉnh sửa nào bạn thích (ví dụ: vim).
3. Tìm dòng liên quan đến 1.1.244.160
. Trong trường hợp của bạn, lỗi báo dòng thứ 3 (:3), nên bạn có thể xóa dòng đó.
- Dòng này có thể trông giống như:
1.1.244.160 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTY...
4. Xóa dòng đó, sau đó lưu tệp và thoát (trong nano, nhấn Ctrl + O, Enter để lưu, rồi Ctrl + X để thoát).
Bước 3: Kết nối lại và chấp nhận khóa mới
1. Thử kết nối lại với máy chủ:
ssh root@1.1.244.160
2. SSH sẽ hiển thị thông báo hỏi bạn có muốn chấp nhận khóa mới không:
The authenticity of host '1.1.244.160 (1.1.244.160)' can't be established.
RSA key fingerprint is SHA256:TeJqjuRZFIOwmuOu1ossNMZd1GPq1r09+m1KIUdk3/E.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
3. Nếu bạn chắc chắn khóa mới là hợp lệ, gõ yes và nhấn Enter. SSH sẽ thêm khóa mới vào tệp known_hosts
và bạn có thể kết nối bình thường.
Cách nhanh hơn (tùy chọn): Xóa trực tiếp bằng lệnh. Thay vì chỉnh sửa thủ công, bạn có thể dùng lệnh ssh-keygen
để xóa khóa cũ:
ssh-keygen -R 1.1.244.160
Lệnh này sẽ xóa tất cả các mục liên quan đến 1.1.244.160
trong tệp known_hosts
. Sau đó, kết nối lại bằng ssh root@1.1.244.160
và chấp nhận khóa mới như bước trên.

4. Lưu ý để tránh lỗi trong tương lai
- Nếu bạn thường xuyên gặp lỗi này do máy chủ thay đổi khóa, hãy hỏi quản trị viên xem có cách nào sao lưu và khôi phục host key không.
- Để tắt kiểm tra khóa (không khuyến khích vì giảm bảo mật), bạn có thể thêm tùy chọn
-o StrictHostKeyChecking=no
khi kết nối:
ssh -o StrictHostKeyChecking=no root@1.1.244.160
Tuy nhiên, chỉ dùng cách này nếu bạn hoàn toàn tin tưởng mạng và máy chủ.
5. Kết luận
Lỗi “REMOTE HOST IDENTIFICATION HAS CHANGED” là một cơ chế bảo mật của SSH để bảo vệ bạn khỏi các kết nối không an toàn. Bằng cách xác minh lý do thay đổi khóa và cập nhật tệp known_hosts
, bạn có thể khắc phục lỗi này dễ dàng. Nếu bạn không chắc chắn về tính an toàn, hãy luôn kiểm tra với quản trị viên trước khi tiếp tục.