Known_hosts file location Linux là gì?

Known_hosts file location Linux là gì?

File known_hosts trong Linux là nơi hệ thống lưu trữ thông tin về các máy chủ mà bạn đã từng kết nối qua SSH, giúp xác thực và đảm bảo an toàn cho phiên đăng nhập sau này. Hiểu rõ cách hoạt động và vị trí của file này sẽ giúp bạn quản lý kết nối hiệu quả hơn, đồng thời hạn chế rủi ro bảo mật. Cùng Web4s tìm hiểu chi tiết hơn về known_hosts nhé!

Known_hosts là gì?

File known_hosts là một tệp tin quan trọng được sử dụng bởi giao thức SSH (Secure Shell) để lưu trữ thông tin xác thực của các máy chủ từ xa mà bạn đã kết nối. Tệp này đóng vai trò như một cơ chế bảo mật, giúp xác minh rằng bạn đang kết nối đúng máy chủ bạn định truy cập, từ đó ngăn chặn các cuộc tấn công trung gian (Man-in-the-Middle - MITM).

known_hosts

Known_hosts Linux là gì?

known_hosts là một tệp tin quan trọng trong Linux, nằm trong thư mục .ssh của người dùng (~/.ssh/known_hosts). Tệp này có chức năng lưu trữ khóa công khai (public key) của các máy chủ từ xa mà bạn đã từng kết nối bằng giao thức SSH (Secure Shell).

Tệp Known_hosts hoạt động như thế nào?

Khi bạn lần đầu tiên kết nối tới một máy chủ SSH, máy chủ sẽ gửi khóa công khai của nó tới máy tính của bạn. Hệ thống sẽ hỏi bạn có muốn lưu khóa này hay không. Nếu bạn đồng ý, khóa này sẽ được lưu vào tệp ~/.ssh/known_hosts (hoặc /etc/ssh/ssh_known_hosts đối với toàn bộ hệ thống).

Những lần kết nối sau, chương trình SSH client sẽ so sánh khóa công khai mà máy chủ gửi với khóa đã lưu trong tệp known_hosts.

  • Nếu hai khóa khớp nhau, kết nối sẽ được thiết lập an toàn.

  • Nếu hai khóa không khớp, có thể có hai trường hợp: máy chủ đã thay đổi khóa (ví dụ: cài đặt lại hệ điều hành) hoặc có một cuộc tấn công đang diễn ra. SSH client sẽ cảnh báo bạn và không cho phép kết nối, nhằm bảo vệ bạn khỏi các rủi ro bảo mật.

>>> Xem thêm: Imunify360 là gì? Giải pháp bảo mật mạnh cho Hosting Linux

Cấu trúc của known_hosts file location Linux 

File ~/.ssh/known_hosts lưu khóa công khai của các máy chủ SSH mà bạn đã kết nối; mỗi dòng tương ứng một máy và có dạng cơ bản sau đây.

[hostname/IP] [key_type] [public_key]

- Ví dụ minh họa:

github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmd...

192.168.1.100 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItb…

- Giải thích chi tiết:

  • hostname/IP: là tên miền hoặc địa chỉ IP của máy chủ đã kết nối, ví dụ github.com hoặc 192.168.1.1.

  • key_type: là loại khóa SSH mà máy chủ cung cấp, ví dụ ssh-rsa, ecdsa-sha2-nistp256 hoặc ed25519.

  • public_key: là chuỗi khóa công khai (thường mã hoá Base64) dùng để xác thực máy chủ trong các lần kết nối sau.

known_hosts

Tầm quan trọng của file known_hosts

File known_hosts giữ vai trò then chốt trong việc đảm bảo an toàn cho các phiên SSH. Nó giúp người dùng xác minh đúng danh tính máy chủ và giảm thiểu rủi ro bị giả mạo trong quá trình kết nối. Dưới đây là những vai trò cụ thể:

  • Xác thực máy chủ: Tệp này lưu trữ khóa công khai (public key) của các máy chủ mà bạn đã kết nối. Nhờ đó, SSH client có thể nhanh chóng xác minh tính hợp lệ của máy chủ trong những lần truy cập sau, đảm bảo bạn đang kết nối đến đúng đích.

  • Phòng chống tấn công MITM: Khi một kẻ tấn công tìm cách giả mạo máy chủ, SSH sẽ so sánh khóa nhận được với khóa đã lưu trong known_hosts. Nếu có sự khác biệt, hệ thống sẽ ngay lập tức đưa ra cảnh báo để ngăn chặn nguy cơ bị tấn công Man-in-the-Middle.

  • Cảnh báo thay đổi bất thường: Nếu máy chủ thay đổi khóa SSH vì lý do hợp pháp (như cấu hình lại) hoặc không hợp pháp (như bị xâm nhập), SSH sẽ hiển thị cảnh báo để bạn xác minh trước khi tiếp tục. Điều này giúp bạn kiểm soát và phản ứng kịp thời với các thay đổi bảo mật.

  • Hỗ trợ quản lý kết nối: Bạn có thể dễ dàng quản lý các kết nối an toàn bằng cách xóa hoặc cập nhật khóa trong tệp này khi cần thiết. Ví dụ, sau khi một máy chủ được thiết lập lại, việc cập nhật khóa là cần thiết để duy trì tính bảo mật.

  • Tích hợp với công cụ SSH: Các lệnh như ssh-keygen -R (để xóa khóa) hay ssh-keyscan (để lấy khóa) giúp việc quản lý tệp known_hosts trở nên hiệu quả và đơn giản hơn.

>>> Xem thêm: Hosting là gì - Dịch vụ hosting website là gì?

Các lệnh liên quan về known_hosts in linux

Để quản lý và sử dụng hiệu quả file known_hosts, người dùng có thể áp dụng một số lệnh quan trọng giúp kiểm tra, chỉnh sửa hoặc xóa thông tin máy chủ đã lưu. Cụ thể như sau:

  • Xóa một host cụ thể khỏi known_hosts: ssh-keygen -R [hostname_or_IP]

  • Kiểm tra host đã tồn tại trong known_hosts hay chưa: ssh-keygen -F [hostname_or_IP]

  • Thêm thủ công key của host vào known_hosts: ssh-keyscan [hostname_or_IP] >> ~/.ssh/known_hosts

  • Hash hostname trong known_hosts để tăng bảo mật: ssh-keygen -H

  • Tắt kiểm tra known_hosts khi kết nối (chỉ nên dùng trong trường hợp đặc biệt): ssh -o StrictHostKeyChecking=no user@host

  • Sao lưu hoặc xóa toàn bộ known_hosts:

    • Sao lưu file: cp ~/.ssh/known_hosts ~/.ssh/known_hosts.bak

    • Xóa toàn bộ file: rm ~/.ssh/known_hosts

known_hosts

Lời kết

File known_hosts là thành phần quan trọng giúp đảm bảo tính an toàn và tin cậy cho các phiên kết nối SSH trong Linux. Việc hiểu rõ cấu trúc và các lệnh quản lý known_hosts sẽ giúp bạn kiểm soát hệ thống hiệu quả hơn, đồng thời phòng tránh rủi ro bảo mật. Nếu bạn cần hỗ trợ chi tiết hơn về known_hosts hoặc có thắc mắc, hãy liên hệ Web4s nhé!

THÔNG TIN LIÊN HỆ

Le Xuan

Đăng bởi:

Le Xuan

136
Bài viết liên quan