Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn thiết lập SSH Passwordless Login trên Linux chi tiết

    Nguyễn Hưng

    Ngày đăng:

    11/03/2026

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

    11/03/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    Đánh giá bài viết

    Nguyễn Hưng

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

    11/03/2026

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

    11/03/2026

    Mục lục

    SSH Passwordless Login là cơ chế đăng nhập SSH không cần nhập mật khẩu, thay vào đó dùng cặp khóa mã hóa để xác thực người dùng với máy chủ từ xa. Trong bài viết này, mình sẽ hướng dẫn bạn các thiết lập SSH Passwordless Login chi tiết từng bước trên Linux.

    Những điểm chính

    • Định nghĩa SSH Passwordless Login: Hiểu rõ khái niệm và cơ chế hoạt động của việc đăng nhập SSH không cần mật khẩu.
    • Lợi ích khi thiết lập: Nắm được các lợi ích vượt trội về bảo mật, sự tiện lợi và khả năng tự động hóa so với phương pháp dùng mật khẩu.
    • Quy trình thiết lập: Thành thạo quy trình các bước để tạo SSH Key, cập nhật lên máy chủ và vô hiệu hóa xác thực bằng mật khẩu một cách an toàn.
    • Lưu ý khi thiết lập: Nắm được các lưu ý quan trọng để đảm bảo quá trình thiết lập thành công, từ việc đặt đúng quyền truy cập đến bảo mật private key.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề nâng cao như nên chọn loại SSH key nào, có nên đặt passphrase và cách quản lý nhiều key trong môi trường lớn.

    SSH Passwordless Login là gì?

    SSH Passwordless Login (hay đăng nhập SSH không cần mật khẩu) là phương thức xác thực nâng cao, cho phép quản trị viên truy cập vào máy chủ từ xa thông qua cơ chế cặp khóa mã hóa (Public/Private Key Pair) thay vì sử dụng mật khẩu truyền thống. Cơ chế hoạt động của phương pháp như sau:

    1. Tạo cặp khóa: Tạo một private key (khóa riêng) được lưu trên máy local và một public key (khóa công khai) được đặt trên server​
    2. Lưu public key trên server: Public key được thêm vào file ~/.ssh/authorized_keys trên máy chủ từ xa​
    3. Xác thực: Khi đăng nhập, SSH client sử dụng private key để tạo chữ ký số, sau đó server xác minh chữ ký này bằng public key. Nếu khớp, bạn được cấp quyền truy cập mà không cần mật khẩu​
    SSH Passwordless Login là phương pháp đăng nhập SSH không cần mật khẩu
    SSH Passwordless Login là phương pháp đăng nhập SSH không cần mật khẩu

    Lợi ích khi thiết lập SSH Passwordless Login

    Việc sử dụng SSH Key thay cho mật khẩu mang lại nhiều lợi ích cho quản trị viên hệ thống:

    • Bảo mật vượt trội: Phương pháp này giúp chống lại các cuộc tấn công Brute-force bằng cách sử dụng các thuật toán mã hóa mạnh như RSA, ECDSA hoặc ED25519. 
    • Tiện lợi và dễ sử dụng: Bạn không cần nhập mật khẩu mỗi lần đăng nhập, chỉ cần chạy lệnh ssh user@server. Cách này giúp bạn đăng nhập nhanh và tiết kiệm thời gian so với phương pháp xác thực mật khẩu truyền thống.
    • Tự động hóa và tích hợp DevOps: Đây là nền tảng để chạy các script tự động hóa như Ansible, Jenkins, Bash script,… giữa các server, giúp tiết kiệm thời gian đáng kể bằng cách loại bỏ nhu cầu gõ lệnh SSH thủ công, giảm lỗi con người, đảm bảo kết quả đáng tin cậy và nhất quán. 
    • Quản lý truy cập và kiểm toán: Bạn có thể dễ dàng quản lý SSH keys cho tự động hóa, giảm nhu cầu chia sẻ hoặc hard-code mật khẩu trong script. Mỗi user có SSH key riêng và có thể quản lý public keys trên server để kiểm soát quyền truy cập. 
    Lợi ích khi thiết lập SSH Passwordless Login
    Lợi ích khi thiết lập SSH Passwordless Login

    Bước 1: Khởi tạo SSH Key trên máy cá nhân

    Tại máy Local, bạn mở cửa sổ dòng lệnh và thực hiện tạo SSH Key bằng lệnh sau:

    ssh-keygen -t rsa

    Chú thích:

    • ssh-keygen: Công cụ quản lý khóa SSH.
    • -t rsa: Chỉ định loại thuật toán mã hóa là RSA.

    Hệ thống sẽ hỏi nơi lưu file và mật khẩu bảo vệ khóa (passphrase). Bạn có thể nhấn Enter liên tục để chọn thiết lập mặc định (không đặt mật khẩu cho khóa). Kết quả hiển thị như sau:

    Khởi tạo SSH Key
    Khởi tạo SSH Key

    Bước 2: Sao chép Public Key lên máy chủ

    Sau đó, bạn thực hiện cập nhật public key vừa tạo vào máy remote bằng lệnh sau:

    ssh-copy-id user@host 

    Trong đó:

    1. ssh-copy-id : Dòng lệnh được sử dụng để sao chép public key và máy muốn SSH bằng key. 
    2. user: Tên người dùng bạn muốn SSH
    3. Host: Địa chỉ IP hoặc domain của máy bạn muốn SSH.

    Nếu bạn sử dụng Windows hoặc lệnh trên không hoạt động, bạn hãy dùng câu lệnh sau để chép nội dung Public Key vào file authorized_keys trên máy chủ:

    cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

    Bước 3: Thiết lập phân quyền

    Để đảm bảo SSH hoạt động, bạn cần thiết lập quyền chính xác cho thư mục .ssh trên máy chủ. Bạn chạy lệnh sau từ máy Local:

    ssh-copy-id user@host "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

    Chú thích:

    • chmod 700 ~/.ssh: Chỉ chủ sở hữu có quyền đọc/ghi/thực thi thư mục cấu hình.
    • chmod 600 …/authorized_keys: Chỉ chủ sở hữu có quyền đọc/ghi file chứa key.

    Bước 4: Vô hiệu hóa xác thực bằng mật khẩu

    Sau khi đã đăng nhập được bằng Key, bạn nên tắt tính năng đăng nhập bằng mật khẩu để ngăn chặn hacker tấn công brute-force.

    Bạn mở file cấu hình SSH trên máy chủ bằng lệnh sau:

    sudo vi /etc/ssh/sshd_config

    Sau đó bạn tìm và sửa hoặc bỏ dấu # nếu bị comment các dòng sau để khớp với cấu hình:

    # Cho phép đăng nhập bằng Key
    PubkeyAuthentication yes
    
    # Tắt đăng nhập bằng Mật khẩu
    PasswordAuthentication no

    Bước 5: Kiểm tra kết nối không cần mật khẩu

    Để áp dụng cấu hình mới, bạn cần restart service sshd trên máy chủ:

    sudo systemctl restart sshd

    Từ máy Local, bạn hãy thử kết nối lại. Nếu thành công, bạn sẽ truy cập thẳng vào server mà không cần nhập mật khẩu.

    ssh user@host
    Kiểm tra kết nối của bạn
    Kiểm tra kết nối của bạn

    Lưu ý khi thiết lập SSH Passwordless Login trên Linux

    Để đảm bảo an toàn tuyệt đối và tránh lỗi trong quá trình sử dụng, bạn cần chú ý các điểm sau:

    • Kiểm tra và đặt đúng quyền truy cập thư mục: Thư mục ~/.ssh thường yêu cầu quyền 700, do đó bạn hãy sử dụng lệnh chmod 700 ~/.ssh
    • Đặt quyền đúng cho file authorized_keys: File ~/.ssh/authorized_keys cần có quyền 600, do đó bạn hãy sử dụng lệnh chmod 600 ~/.ssh/authorized_keys.​
    • Đặt quyền đúng cho private key: Private key phải có quyền 400 hoặc 600, nếu quyền quá mở, SSH sẽ từ chối kết nối với thông báo “permissions are too open“​.
    • Không chia sẻ private key: Private key phải được giữ bí mật trên máy local của bạn và chỉ public key được gửi đến server​.
    • Tạo SSH directory nếu chưa tồn tại: Trước khi dán public key vào authorized_keys, bạn hãy đảm bảo thư mục ~/.ssh đã tồn tại trên server.
    • Bảo mật SSH server config: Bạn cần đảm bảo rằng các thiết lập bảo mật khác trong /etc/ssh/sshd_config đang bật, như PubkeyAuthentication yes, PermitRootLogin prohibit-password để ngăn root login trực tiếp​.
    • Sử dụng tên key có ý nghĩa: Khi tạo SSH keys, hãy đặt tên có ý nghĩa để dễ dàng quản lý nhiều keys cho nhiều server khác nhau​.
    • Cấp quyền truy cập hạn chế cho script tự động hóa: Nếu bạn sử dụng SSH keys cho script tự động hóa, hãy tạo một user riêng với quyền hạn chế và dùng key chỉ cho user đó​.
    Những lưu ý khi thiết lập SSH Passwordless Login trên Linux
    Những lưu ý khi thiết lập SSH Passwordless Login trên Linux (Nguồn: Internet)

    Câu hỏi thường gặp

    Nên chọn loại SSH key nào cho môi trường Linux hiện đại?

    Trong đa số hệ thống hiện đại, ED25519 thường được khuyến nghị vì bảo mật tốt, key ngắn, hiệu năng cao và dễ quản lý hơn so với RSA dung lượng lớn. Tuy nhiên, RSA vẫn phổ biến do khả năng tương thích rộng, nhưng nên dùng tối thiểu 2048–3072 bit, trong khi ED25519 phù hợp với chuẩn trong giai đoạn hiện nay.

    Có nên đặt passphrase cho private key khi dùng SSH Passwordless Login không?

    Đặt passphrase là cách thêm một lớp bảo vệ, giúp giảm rủi ro nếu private key bị đánh cắp vì kẻ tấn công vẫn phải vượt qua passphrase mới sử dụng được key. Tuy nhiên, với các kịch bản tự động hóa, nhiều bên chấp nhận dùng key không passphrase kết hợp giới hạn quyền user, IP, time hoặc dùng ssh-agent/agent-forwarding để vừa bảo mật vừa tiện dụng.

    Làm sao quản lý và xoay vòng nhiều SSH key của nhiều user trên nhiều server?

    Đối với môi trường lớn, nên dùng công cụ quản lý cấu hình/CM như Ansible, Puppet, Chef,… để phân phối, thu hồi và xoay vòng SSH keys theo lịch định kỳ. Một số tổ chức còn triển khai giải pháp quản lý SSH key chuyên dụng hoặc hệ thống IAM để tự động hóa quá trình cấp, thu hồi, gắn quyền theo nguyên tắc “least privilege”.

    Trên đây là toàn bộ quy trình thiết lập SSH Passwordless Login trên Linux, giúp bạn đăng nhập nhanh hơn, an toàn hơn và dễ dàng tích hợp vào các quy trình tự động hóa quản trị hệ thống hằng ngày. Khi triển khai đúng cách, cơ chế xác thực bằng SSH key sẽ trở thành lớp bảo vệ tiêu chuẩn cho hạ tầng server của bạn trước các hình thức tấn công phổ biến từ bên ngoài. Chúc bạn thao tác thành công và hẹn gặp lại bạn trong các bài viết tiếp theo.

    Đánh giá bài viết
    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

    Cách dùng lệnh networkct để kiểm tra và quản lý trạng thái các liên kết mạng
    Cách dùng lệnh networkct để kiểm tra và quản lý trạng thái các liên kết mạng

    networkctl là công cụ dòng lệnh dùng để giám sát trạng thái các thiết bị mạng được quản lý bởi systemd-networkd. Lệnh này cho phép xem chi tiết cấu hình và liên kết, hỗ trợ quản trị viên chẩn đoán, xử lý sự cố mạng nhanh chóng. Trong bài viết dưới đây, mình sẽ hướng…

    11/03/2026

    Hướng dẫn sửa lỗi command pip3 not found chi tiết và nhanh chóng
    Hướng dẫn sửa lỗi command pip3 not found chi tiết và nhanh chóng

    Lỗi command pip3 not found nghĩa là hệ điều hành không tìm thấy lệnh pip3 trong PATH, thường do pip3 chưa được cài hoặc cài rồi nhưng không được thêm vào biến môi trường PATH. Trong bài viết này, mình sẽ cùng bạn tìm hiểu về nguyên nhân và cách khắc phục lỗi command pip3…

    11/03/2026

    Hướng dẫn sử dụng Nano Editor: Từ cài đặt đến chỉnh sửa cho người mới bắt đầu
    Hướng dẫn sử dụng Nano Editor: Từ cài đặt đến chỉnh sửa cho người mới bắt đầu

    Nano Editor (GNU nano) là một trình soạn thảo văn bản chạy trong terminal có giao diện đơn giản và dễ sử dụng trên các hệ điều hành Linux/UNIX. Công cụ này thường được cài sẵn trên nhiều bản phân phối Linux và phù hợp cho người mới, để mở, chỉnh sửa và lưu các…

    11/03/2026

    Phân biệt Hard Link và Soft Link chi tiết, chính xác trong Linux
    Phân biệt Hard Link và Soft Link chi tiết, chính xác trong Linux

    Hard Link và Soft Link là hai phương thức tạo liên kết tệp tin phổ biến trong hệ điều hành Linux. Về cơ bản, chúng giúp bạn truy cập một tệp tin từ nhiều vị trí khác nhau mà không cần nhân đôi dữ liệu thực tế, nhưng lại có cơ chế hoạt động và…

    11/03/2026

    linux

    system-linux

    text