Sử dụng SSH key là cách bảo mật, tiện lợi và phổ biến nhất để truy cập vào các máy chủ từ xa (VPS). Nếu bạn đang dùng MacBook và quản lý nhiều VPS khác nhau, việc tổ chức các SSH key gọn gàng, có tên dễ nhớ và bảo trì lâu dài là điều rất quan trọng.


📌 1. SSH key là gì?

  • Private key (id_rsa): giữ bí mật, chỉ tồn tại trên máy của bạn.
  • Public key (id_rsa.pub): có thể chia sẻ, dùng để dán lên máy chủ để được phép truy cập.

🔑 2. Tạo SSH key mới cho từng VPS

Trên MacBook, mở Terminal và chạy:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_tenvps

Trong đó:

  • id_rsa_tenvps: đặt tên gợi nhớ như id_rsa_ivolunteer, id_rsa_server_de, v.v.
  • Bạn có thể đặt passphrase hoặc để trống (tùy mức độ bảo mật mong muốn)

🚀 3. Gửi public key lên VPS (bằng ssh-copy-id)

Nếu VPS dùng port mặc định (22):

ssh-copy-id -i ~/.ssh/id_rsa_tenvps.pub root@IP_VPS

Nếu VPS dùng port tùy chỉnh, ví dụ 26266:

ssh-copy-id -i ~/.ssh/id_rsa_tenvps.pub -p 26266 root@IP_VPS

⚠️ Nếu ssh-copy-id không hỗ trợ port (một số bản trên Mac), hãy dùng cách thủ công:

cat ~/.ssh/id_rsa_tenvps.pub | ssh -p 26266 root@IP_VPS 
"mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

🗂️ 4. Cấu hình file ~/.ssh/config để quản lý dễ dàng

Tạo (hoặc mở) file cấu hình:

nano ~/.ssh/config

Thêm nội dung như sau:

Host vps_ivolunteer
    HostName 103.162.31.117
    Port 26266
    User root
    IdentityFile ~/.ssh/id_rsa_ivolunteer
    IdentitiesOnly yes

Bây giờ, bạn chỉ cần dùng:

ssh vps_ivolunteer

thay vì phải nhớ IP và port thủ công.


🔍 5. File authorized_keys là gì?

Trên VPS, thư mục ~/.ssh/authorized_keys (ví dụ: /root/.ssh/authorized_keys) là nơi liệt kê các public key được phép truy cập vào VPS đó. Mỗi dòng là một public key.

Bạn có thể thêm nhiều key vào để cho phép nhiều máy khác nhau SSH vào VPS.


📁 6. Thư mục .ssh nằm ở đâu?

Hệ thốngĐường dẫn
MacBook (user)~/.ssh hoặc /Users/yourname/.ssh
VPS (root)/root/.ssh
VPS (user thường)/home/username/.ssh

Bạn có thể vào .ssh trên Mac bằng:

cd ~/.ssh
ls -la

Hoặc mở Finder → Cmd + Shift + G → nhập ~/.ssh.


📑 7. Ý nghĩa các file trong .ssh

Tên fileMục đích
id_rsaPrivate key - KHÔNG chia sẻ
id_rsa.pubPublic key - dùng để dán vào authorized_keys
authorized_keys(trên VPS) chứa danh sách các public key được phép SSH
configCấu hình tùy chọn nhiều VPS, port, file key
known_hostsGhi nhớ các host đã kết nối trước (tự động sinh ra)

💡 8. Quản lý nhiều VPS hiệu quả

  • Mỗi VPS tạo 1 SSH key riêng (id_rsa_vps_name)
  • Dùng ~/.ssh/config để alias truy cập nhanh
  • Dùng thư mục con ~/.ssh/keys/ nếu muốn gọn gàng: mkdir -p ~/.ssh/keys mv ~/.ssh/id_rsa_* ~/.ssh/keys/

Đừng quên cập nhật đường dẫn trong ~/.ssh/config nếu bạn di chuyển file.


🔐 9. Phân quyền đúng

Trên cả máy bạn và VPS, luôn đảm bảo:

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

✅ Tổng kết

  • Public key (.pub) là “vé vào cửa”
  • Private key (id_rsa) là chìa khóa thật — không được chia sẻ
  • VPS chứa authorized_keys, nếu public key nào trong đó → được truy cập
  • Dùng ~/.ssh/config để kết nối nhanh và chuyên nghiệp
  • Có thể thêm nhiều public key vào authorized_keys để cho nhiều thiết bị truy cập