Mục lục bài viết

Linux

SSH Là Gì? Tại Sao Nên Dùng Private Key Thay Vì Mật Khẩu Để Bảo Mật VPS?

phongdh
phongdh
Chia sẻ:
Zalo
SSH Là Gì? Tại Sao Nên Dùng Private Key Thay Vì Mật Khẩu Để Bảo Mật VPS?

Khi mới bắt đầu thuê và quản trị VPS (Virtual Private Server), thuật ngữ đầu tiên bạn thường xuyên bắt gặp là SSH. Ngay sau đó, các chuyên gia sẽ khuyên bạn: “Hãy tắt đăng nhập bằng mật khẩu đi, dùng SSH Key (Private Key) mới an toàn!”.

Vậy SSH là gì? Tại sao một chiếc mật khẩu dài 20 ký tự vẫn bị xem là “kém an toàn” so với Private Key? Bài viết này sẽ giải thích cho bạn theo cách dễ hiểu nhất, không cần kiến thức lập trình phức tạp.

ssh vps

1. SSH Là Gì? (Hiểu Theo Cách Đơn Giản Nhất)

SSH (viết tắt của Secure Shell) là một giao thức mạng dùng để kết nối và điều khiển một máy tính từ xa (như VPS của bạn) thông qua môi trường Internet.

Hãy tưởng tượng thế này: VPS của bạn là một ngôi nhà nằm ở tận bên Mỹ hoặc Singapore. Bạn đang ở Việt Nam và muốn vào nhà để sắp xếp đồ đạc (cài đặt phần mềm, up source code).

  • Nếu bạn đi bộ trên đường bình thường (kết nối không mã hóa như Telnet/FTP cũ), kẻ gian có thể nhìn trộm xem bạn mang theo gì, thậm chí cướp chìa khóa của bạn.
  • SSH chính là một “đường hầm bí mật và bọc thép”. Khi bạn đi qua đường hầm này, mọi thông tin trao đổi giữa máy tính của bạn và VPS đều được mã hóa. Không một hacker nào có thể nhìn trộm hay đánh cắp dữ liệu trên đường truyền.

2. Các Phương Thức Đăng Nhập SSH: Mật Khẩu vs. SSH Key

Để bước vào “ngôi nhà VPS” thông qua đường hầm SSH, bạn cần chứng minh mình là chủ nhà. Có 2 cách phổ biến:

Cách 1: Dùng Mật Khẩu (Password)

Đây là cách truyền thống. Bạn nhập User (thường là root) và một dải mật khẩu (VD: MatKhauKhoDoan123!).

  • Ưu điểm: Quen thuộc, dễ sử dụng.
  • Nhược điểm: Dễ bị hacker tấn công bằng phương pháp dò rỉ (Brute Force).

Cách 2: Dùng SSH Key (Public Key & Private Key)

SSH Key là một cặp khóa mật mã sinh ra cùng nhau, bao gồm:

  • Public Key (Khóa công khai – Ổ khóa): Bạn mang ổ khóa này gắn lên cửa của VPS.
  • Private Key (Khóa bí mật – Chìa khóa): Bạn cất kỹ chìa khóa này trong máy tính cá nhân của mình. Tuyệt đối không gửi cho ai.

Khi bạn muốn kết nối vào VPS, hệ thống kiểm tra xem Private Key trên máy bạn có khớp với Public Key trên server hay không. Nếu khớp, cửa mở ngay lập tức mà không cần hỏi mật khẩu.

3. 3 Lý Do BẮT BUỘC Phải Dùng Private Key Thay Vì Mật Khẩu

Nhiều người mới dùng VPS thường lười tạo SSH Key và trung thành với Mật khẩu. Dưới đây là lý do tại sao đó là một sai lầm chết người:

    3.1. Chống Lại Tấn Công Dò Mật Khẩu (Brute Force Attack)

    Ngay khi bạn vừa mua một con VPS và đưa nó lên mạng, các con Bot (robot tự động) của hacker trên toàn thế giới sẽ bắt đầu “gõ cửa” nhà bạn. Chúng sẽ thử hàng triệu mật khẩu phổ biến mỗi giây để tìm cách vào trong. Nếu mật khẩu của bạn là admin123 hoặc ngày tháng năm sinh, VPS của bạn sẽ bị chiếm quyền trong chưa đầy 5 phút.

    Private Key thì khác! Nó là một tệp văn bản chứa chuỗi ký tự mã hóa dài ngoằng (khoảng 2048 hoặc 4096 bit). Việc một hacker dùng máy tính để “đoán” ra Private Key của bạn là điều bất khả thi với công nghệ hiện tại (phải mất hàng triệu năm).

    3.2. Tiện Lợi Vượt Trội (Đăng nhập không cần gõ phím)

    Hãy tưởng tượng bạn đang quản lý 5 con VPS khác nhau. Nếu dùng mật khẩu, bạn phải nhớ 5 mật khẩu phức tạp và gõ tay mỗi lần kết nối. Với SSH Key, một khi bạn đã cấu hình xong, bạn chỉ cần gõ lệnh ssh root@ip_vps và bùm! Bạn đã ở trong server mà không cần nhập bất kỳ ký tự mật khẩu nào.

    3.3. Dễ Dàng Cấp Quyền Và Thu Hồi Quyền Truy Cập

    Nếu bạn muốn cho một người bạn (hoặc nhân viên) vào VPS để sửa lỗi:

    • Dùng mật khẩu: Bạn phải đưa pass cho họ. Sửa xong bạn lại phải đổi pass để bảo mật. Rất phiền phức!
    • Dùng SSH Key: Bạn chỉ cần bảo họ đưa Public Key của họ, bạn dán lên VPS là xong. Khi họ làm xong, bạn xóa Public Key đó đi. Họ sẽ vĩnh viễn không vào lại được nữa. Cực kỳ chuyên nghiệp và an toàn.

    4. Hướng Dẫn Nhanh: Cách Tạo Và Sử Dụng SSH Key

    Dưới đây là 4 bước siêu cơ bản để bạn bắt đầu chuyển sang dùng SSH Key (áp dụng cho máy Mac/Linux và Windows 10/11 trở lên):

    Bước 1: Tạo cặp khóa trên máy tính cá nhân của bạn

    Mở Terminal (Mac/Linux) hoặc PowerShell/CMD (Windows) và gõ lệnh:

    ssh-keygen -t rsa -b 4096

    (Cứ nhấn Enter liên tục cho các câu hỏi hiện ra để dùng thiết lập mặc định).

    Bước 2: Mang “ổ khóa” (Public Key) gắn lên VPS

    Có 2 cách để làm việc này. Hãy chọn cách phù hợp với bạn:

    Cách A: Dùng lệnh tự động (Khuyên dùng – Nhanh nhất) Nếu bạn dùng Mac/Linux hoặc Windows có hỗ trợ, chỉ cần gõ lệnh sau để “đẩy” ổ khóa lên VPS (thay ip_cua_vps bằng IP thật của bạn):

    ssh-copy-id root@ip_cua_vps

    (Hệ thống sẽ hỏi mật khẩu VPS của bạn 1 lần để thực hiện việc copy này).

    Cách B: Thêm thủ công (Dành cho ai bị lỗi ở Cách A) Nếu lệnh trên không hoạt động, bạn có thể tự tay dán “ổ khóa” lên VPS theo 3 thao tác nhỏ sau:

    • Thao tác 1 (Trên máy cá nhân): Xem và copy nội dung Public Key. Gõ lệnh cat ~/.ssh/id_rsa.pub. Bạn sẽ thấy một đoạn chữ rất dài (bắt đầu bằng ssh-rsa...). Hãy bôi đen và Copy toàn bộ đoạn đó.
    • Thao tác 2 (Trên máy cá nhân): Đăng nhập vào VPS bằng mật khẩu như bình thường bằng lệnh ssh root@ip_cua_vps.
    • Thao tác 3 (Trên VPS): Tạo thư mục ẩn .ssh và dán chìa khóa vào file authorized_keys. Gõ lần lượt các lệnh sau:
    # Tạo thư mục .ssh nếu chưa 
    mkdir -p ~/.ssh
    
    # Mở file authorized_keys để chỉnh sửa
    nano ~/.ssh/authorized_keys

    (Tại màn hình nano, hãy Paste/Dán đoạn mã bạn đã copy ở Thao tác 1 vào. Sau đó nhấn Ctrl + O rồi Enter để lưu, và Ctrl + X để thoát).

    Cuối cùng, chạy 2 lệnh sau trên VPS để phân quyền bảo mật (bắt buộc, nếu không SSH Key sẽ không chạy):

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys

    Bước 3: Đăng nhập bằng SSH Key

    Bây giờ, bạn hãy thoát khỏi VPS (gõ exit) và thử đăng nhập lại bằng lệnh quen thuộc:

    ssh root@ip_cua_vps

    Bạn sẽ thấy điều kỳ diệu: Hệ thống cho phép bạn vào thẳng VPS mà không hề hỏi mật khẩu VPS nữa! (Lưu ý: Nếu ở Bước 1 bạn có đặt mật khẩu bảo vệ riêng cho file Private Key – gọi là passphrase – thì lúc này máy sẽ hỏi passphrase đó).

    Bước 4: Tắt hoàn toàn đăng nhập bằng Mật khẩu (Chốt chặn cuối cùng)

    CHÚ Ý: Chỉ thực hiện bước này sau khi bạn đã làm thành công Bước 3 để chắc chắn mình không bị tự khóa cửa ngoài! Sau khi đã đăng nhập thành công bằng Key, bạn cần vô hiệu hóa Mật khẩu để hacker hết đường dò tìm. Mở file cấu hình SSH trên VPS:

    vi /etc/ssh/sshd_config

    Tìm dòng PasswordAuthentication yes và đổi thành PasswordAuthentication no. Lưu lại và khởi động lại dịch vụ SSH:

    systemctl restart sshd

    5. Mẹo Nâng Cao: Quản Lý Nhiều VPS Với Nhiều SSH Key Khác Nhau

    Khi bạn quản trị từ 2 VPS trở lên và tạo ra nhiều cặp Public/Private Key khác nhau (Ví dụ: key_vps_1, key_vps_2), trình SSH sẽ không tự biết phải dùng chìa khóa nào. Để giải quyết, bạn có 2 cách:

    Cách 1: Chỉ định thủ công (Dùng cờ -i)

    Mỗi lần kết nối, bạn khai báo rõ đường dẫn tới Private Key tương ứng bằng tham số -i:

    ssh -i ~/.ssh/key_vps_1 root@ip_cua_vps_1

    Cách 2: Dùng file cấu hình (Khuyên dùng – Cực kỳ nhàn)

    Bạn có thể cấu hình sẵn để hệ thống tự động nhận diện. Mở hoặc tạo file config trong thư mục .ssh trên máy cá nhân:

    vi ~/.ssh/config

    Thêm cấu hình cho từng VPS như sau:

    Host vps-chinh
        HostName 103.xxx.xxx.xxx
        User root
        IdentityFile ~/.ssh/key_vps_1
    
    Host vps-du-phong
        HostName 103.xxx.xxx.xxx
        User ubuntu
        IdentityFile ~/.ssh/key_vps_2

    Sau khi lưu lại, mỗi lần muốn kết nối, bạn không cần nhớ IP hay đường dẫn Key nữa. Chỉ cần gõ:

    ssh vps-chinh

    Hệ thống sẽ tự động lấy đúng Key và đăng nhập vào đúng IP cho bạn!

    6. Tổng Kết

    Quản trị VPS không hề đáng sợ như bạn nghĩ nếu chúng ta bắt đầu từ việc xây dựng một “nền móng” bảo mật vững chắc. Hiểu được SSH là gì và chuyển sang sử dụng Private Key thay cho Mật khẩu chính là bước đi chuyên nghiệp đầu tiên giúp bạn ngủ ngon hàng đêm mà không lo website hay dữ liệu của mình bị hacker đánh cắp.

    Hãy thực hành tạo SSH Key ngay hôm nay! Ở bài viết tiếp theo, chúng ta sẽ tìm hiểu về Firewall (Tường lửa) và cách đóng/mở các Port trên VPS.

    Chia sẻ:
    Zalo
    phongdh

    phongdh

    Content Creator

    Chào mọi người, mình là Phong - hiện đang công tác tại Phòng Kỹ thuật AZDIGI. Trong quá trình làm việc mình có cơ hội được tiếp xúc với khá nhiều các vấn đề liên quan đến Website/Email/Hosting/VPS/Server, do đó mình viết lại các hướng dẫn này nhằm chia sẻ kiến thức, cũng như tạo một môi trường để chúng ta giao lưu và học hỏi lẫn nhau.

    Kết nối:

    Bài viết liên quan

    Những bài viết bạn có thể quan tâm

    Thảo luận

    0 bình luận cho bài viết này

    * Địa chỉ email của bạn sẽ được bảo mật và không hiển thị công khai.

    Chưa có bình luận nào

    Hãy là người đầu tiên chia sẻ góc nhìn của bạn về bài viết này nhé!

    Zalo

    Nhập từ khóa để tìm kiếm...

    0 kết quả

    CHUYÊN MỤC LIÊN QUAN