Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn sửa lỗi Warning: Remote Host Identification Has Changed

    Nguyễn Hưng

    Ngày đăng:

    19/11/2025

    Cập nhật lần cuối:

    19/11/2025

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    19/11/2025

    Cập nhật lần cuối:

    19/11/2025

    Mục lục

    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).

    Khái niệm
    Khái niệm lỗi “Remote Host Identification Has Changed

    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:

    1. 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.
    2. 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.
    Lỗi "Remote Host Identification Has Changed!" có thể xuất phát từ 2 nguyên nhân chính
    Lỗi “Remote Host Identification Has Changed!” có thể xuất phát từ 2 nguyên nhân chính (Nguồn: Internet)

    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.

    Xác định chính xác hostname hoặc địa chỉ IP gây ra lỗi
    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]
    Gõ lệnh ssh-keygen -R [hostname_hoac_IP_address]

    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.

    Kết nối lại bằng lệnh ssh user@hostname
    Kết nối lại bằng lệnh ssh user@hostname

    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“.

    Tìm số dòng chứa key cần xóa
    Tìm số dòng chứa key cần xóa

    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_hosts

    Bướ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 đó.

    Xóa dòng được chỉ định trong thông báo lỗi
    Xóa dòng được chỉ định trong thông báo lỗi

    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.

    Kết nối lại và chấp nhận key mới
    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.

    Truy cập thư mục người dùng
    Truy cập thư mục người dùng

    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.

    Xác định vị trí tệp known_hosts
    Xác định vị trí tệp known_hosts

    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.

    Chỉnh sửa tệp known_hosts
    Chỉnh sửa tệp known_hosts

    2. Đối với PuTTY

    PuTTY không sử dụng file known_hosts mà lưu trữ host keys trong Windows Registry.

    iconLư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\SshHostKeys

    Bướ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.

    Danh sách các khóa đã lưu
    Danh sách các khóa đã lưu

    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.

    Mở lại PuTTY và kết nố
    Mở lại PuTTY và kết nố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.
    Bạn nên sử dụng mật khẩu mạnh, xác thực hai lớp (2FA)
    Bạn nên sử dụng mật khẩu mạnh, xác thực hai lớp (2FA) (Nguồn: Internet)

    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ả.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Hướng dẫn 3 cách kiểm tra địa chỉ IP Linux nhanh chóng
    Hướng dẫn 3 cách kiểm tra địa chỉ IP Linux nhanh chóng

    Check IP Linux là quá trình xác định địa chỉ IP của một thiết bị đang chạy hệ điều hành Linux, bao gồm cả IP Private và IP Public. Trong bài viết này, mình sẽ giúp bạn phân biệt IP Private với IP Public và hướng dẫn chi tiết các cách kiểm tra địa chỉ…

    05/12/2025

    Tổng hợp 20 hosting free uy tín, chất lượng và không quảng cáo
    Tổng hợp 20 hosting free uy tín, chất lượng và không quảng cáo

    Hosting free là một dịch vụ cung cấp không gian lưu trữ và tài nguyên máy chủ mà không yêu cầu người dùng trả phí. Trong bài viết này, mình sẽ giúp bạn hiểu rõ hơn về Hosting free, có nên sử dụng dịch vụ này không và điểm qua 20 nhà cung cấp uy…

    05/12/2025

    Tên miền miễn phí là gì? TOP 10 nhà cung cấp tên miền miễn phí uy tín
    Tên miền miễn phí là gì? TOP 10 nhà cung cấp tên miền miễn phí uy tín

    Tên miền miễn phí là một giải pháp cho phép người dùng đăng ký và sử dụng một địa chỉ web mà không phải trả bất kỳ chi phí nào. Trong bài viết này, mình sẽ giúp bạn hiểu rõ hơn ưu nhược điểm của tên miền miễn phí, trường hợp nên sử dụng và…

    04/12/2025

    Hosting AMD là gì? Tìm hiểu tổng quan về Hosting AMD
    Hosting AMD là gì? Tìm hiểu tổng quan về Hosting AMD

    Hosting AMD là dịch vụ lưu trữ website được vận hành trên máy chủ sử dụng bộ vi xử lý của AMD, một trong những nhà sản xuất chip hàng đầu hiện nay. Trong bài viết này, mình sẽ giúp bạn hiểu rõ hơn về Hosting AMD, những lý do nên sử dụng, ưu nhược…

    04/12/2025