OffshoreVps
Bảo mật5 thg 10 20266 phút đọcBởi đội ngũ OffshoreVps

Giải thích khóa SSH: bảo mật đăng nhập VPS trong 5 phút

Tạo khóa Ed25519, sao chép lên máy chủ, tắt đăng nhập bằng mật khẩu một cách an toàn và thiết lập cấu hình SSH gọn gàng. Hãy làm điều này trên mọi máy chủ mới.

Mật khẩu SSH có thể bị đoán ra. Khóa thì không. Chuyển VPS sang đăng nhập bằng khóa là nâng cấp bảo mật lớn nhất bạn có thể làm, và chỉ mất khoảng năm phút.

Cửa sổ terminal trên VPS hiển thị các lệnh dùng cho khóa SSH của VPS, bắt đầu bằng “ssh-keygen -t ed25519 -C "me@laptop"”
Loại lệnh bạn sẽ chạy trên máy chủ của mình trong hướng dẫn này.

Khóa SSH hoạt động thế nào

Bạn tạo một cặp tệp. Khóa riêng ở lại trên máy tính của bạn và không bao giờ được chia sẻ. Khóa công khai được đặt trên máy chủ. Khi bạn kết nối, máy chủ yêu cầu máy tính của bạn chứng minh rằng nó giữ khóa riêng tương ứng, mà khóa không bao giờ đi qua mạng.

1. Tạo cặp khóa

ssh-keygen -t ed25519 -C "me@laptop"

Khóa Ed25519 ngắn, nhanh và hiện đại. Hãy chọn một cụm mật khẩu khi được hỏi, để laptop bị đánh cắp không đồng nghĩa với máy chủ bị đánh cắp. Trên Windows 10 và 11, cùng lệnh này chạy được trong PowerShell.

2. Sao chép khóa công khai lên máy chủ

ssh-copy-id user@your.server.ip

Nếu không có ssh-copy-id, hãy nối nội dung của ~/.ssh/id_ed25519.pub vào ~/.ssh/authorized_keys trên máy chủ, rồi chạy chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys.

Các bước của hướng dẫn này theo thứ tự: 1. Khóa SSH hoạt động ra sao; 2. 1. Tạo cặp khóa; 3. 2. Sao chép khóa công khai lên máy chủ; 4. 4. Tắt đăng nhập bằng mật khẩu; 5. 5. Cấu hình máy khách gọn gàng; 6. Thực hành tốt
Các bước trong hướng dẫn này, theo thứ tự.

3. Kiểm tra trước khi tắt mật khẩu

Mở một terminal thứ hai và đăng nhập bằng khóa. Hãy giữ phiên đầu tiên mở cho đến khi việc này chạy được, để một sai sót không thể khóa bạn bên ngoài.

4. Tắt đăng nhập bằng mật khẩu

sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
sudo sshd -t && sudo systemctl reload ssh

Lệnh kiểm tra sshd -t bắt lỗi gõ sai trước khi chúng làm hỏng quyền truy cập của bạn. Trên một số hệ thống, dịch vụ có tên là sshd thay vì ssh.

5. Một cấu hình client gọn gàng

# ~/.ssh/config
Host myvps
    HostName your.server.ip
    User deploy
    IdentityFile ~/.ssh/id_ed25519

Giờ bạn chỉ cần gõ ssh myvps.

Thực hành tốt

  • Dùng một khóa riêng cho mỗi thiết bị, để bạn có thể thu hồi một khóa mà không ảnh hưởng đến các khóa khác.
  • Dùng ssh-agent để bạn chỉ nhập cụm mật khẩu một lần mỗi phiên.
  • Xóa khóa khỏi authorized_keys khi thiết bị bị mất hoặc nhân viên nghỉ việc.
  • Thêm fail2ban để giảm nhiễu nhật ký, như trong danh sách kiểm tra bảo mật 15 phút của chúng tôi.