SSH Keys
Thông thường bạn đăng nhập VPS bằng tài khoản root và mật khẩu do nhà cung cấp gửi. Mật khẩu có hai rủi ro lớn: lộ mật khẩu là mất toàn quyền máy chủ, và kẻ tấn công có thể dò mật khẩu (brute force). Vì vậy, trên mọi máy chủ kết nối với FlashPanel, đăng nhập SSH bằng mật khẩu bị tắt theo mặc định; bạn đăng nhập bằng SSH Key.
SSH Key là gì?
SSH Key là một cặp khóa dùng thay mật khẩu khi đăng nhập SSH:
- Private key (khóa bí mật): giữ trên máy tính của bạn, tuyệt đối không chia sẻ.
- Public key (khóa công khai): một dòng văn bản bắt đầu bằng
ssh-ed25519 ...hoặcssh-rsa ..., được thêm vào máy chủ.
Khi đăng nhập, máy chủ kiểm tra máy tính của bạn có giữ private key khớp với public key đã thêm hay không. Chỉ ai có private key mới đăng nhập được.
Một số phần mềm trên Windows (PuTTY, WinSCP, một số công cụ quản lý cơ sở dữ liệu) cần private key ở định dạng PuTTY (.ppk), còn lệnh ssh và phần lớn công cụ khác dùng định dạng OpenSSH. Hướng dẫn bên dưới chỉ cách tạo cả hai.
Tạo SSH Key
Cách nhanh: tạo ngay trong FlashPanel (mọi hệ điều hành)
- Mở trang SSH Keys và bấm Thêm SSH Key.
- Trong hộp thoại, bấm Tạo ngẫu nhiên SSH Key. FlashPanel điền sẵn Name và Public key.
- Tải về cả 3 tệp bằng các nút OpenSSH Key, PuTTY Key (
.ppk) và Public Key (.pub), rồi cất giữ cẩn thận. - Bấm Thêm SSH Key để lưu.
WARNING
Private key chỉ được cấp một lần. Nếu đóng hộp thoại mà chưa tải về, bạn phải tạo khóa mới.
Khóa thêm ở trang này là SSH Key toàn cục: tự động được thêm vào mọi máy chủ mới bạn tạo.
Windows
Dùng PowerShell (định dạng OpenSSH)
Windows 10 (bản 1809 trở lên) và Windows 11 thường có sẵn OpenSSH Client. Nếu lệnh ssh-keygen báo không tìm thấy, mở Settings > System > Optional features (Windows 10: Settings > Apps > Optional features), bấm Add a feature (hoặc View features), tìm OpenSSH Client và bấm Install.
Mở PowerShell và chạy:
powershellssh-keygen -t ed25519Bấm Enter để lưu ở vị trí mặc định. Có thể nhập passphrase để bảo vệ private key, hoặc bấm Enter để bỏ qua.
Lệnh tạo private key
id_ed25519và public keyid_ed25519.pubtrong thư mụcC:\Users\<tên-bạn>\.ssh\. Xem public key để sao chép:powershellGet-Content "$env:USERPROFILE\.ssh\id_ed25519.pub"
Dùng PuTTYgen (định dạng PuTTY .ppk)
- Cài PuTTY rồi mở PuTTYgen.
- Ở mục Type of key to generate, chọn EdDSA (Ed25519) hoặc RSA (2048 bit trở lên).
- Bấm Generate và di chuyển chuột ngẫu nhiên trong vùng trống của cửa sổ cho đến khi tạo xong.
- (Không bắt buộc) Nhập mật khẩu cho private key ở Key passphrase và Confirm passphrase.
- Bấm Save private key để lưu tệp
.ppk. - Sao chép toàn bộ nội dung ô Public key for pasting into OpenSSH authorized_keys file (bắt đầu bằng
ssh-ed25519hoặcssh-rsa). Đây là public key để thêm vào FlashPanel.
Nếu cần thêm private key định dạng OpenSSH, chọn menu Conversions > Export OpenSSH key.
macOS
Mở Terminal và chạy:
bashssh-keygen -t ed25519Bấm Enter để lưu ở vị trí mặc định (
~/.ssh/id_ed25519), rồi nhập passphrase hoặc bấm Enter để bỏ qua.Sao chép public key vào clipboard:
bashpbcopy < ~/.ssh/id_ed25519.pub
Nếu cần private key định dạng PuTTY (.ppk), cài công cụ puttygen bằng Homebrew rồi chuyển đổi:
brew install putty
puttygen ~/.ssh/id_ed25519 -o ~/.ssh/id_ed25519.ppkLinux
Mở terminal và chạy (nếu chưa có
ssh-keygen, cài bằngsudo apt install openssh-client):bashssh-keygen -t ed25519Bấm Enter để lưu ở vị trí mặc định (
~/.ssh/id_ed25519), rồi nhập passphrase hoặc bấm Enter để bỏ qua.Xem public key để sao chép:
bashcat ~/.ssh/id_ed25519.pub
Nếu cần private key định dạng PuTTY (.ppk):
sudo apt install putty-tools
puttygen ~/.ssh/id_ed25519 -o ~/.ssh/id_ed25519.ppkLưu ý về loại khóa
Ed25519 ngắn, nhanh và an toàn, được khuyến nghị cho hầu hết trường hợp.
Nếu phần mềm bạn dùng không hỗ trợ Ed25519, tạo khóa RSA:
bashssh-keygen -t rsa -b 4096 -m PEMNếu phần mềm cũ (PuTTY, WinSCP bản cũ) không mở được tệp
.ppk, chuyển đổi với định dạng PPK version 2: thêm--ppk-param version=2vào lệnhputtygen, hoặc trong PuTTYgen chọn Key > Parameters for saving key files... > PPK file version =2trước khi lưu.
Dùng SSH Key với FlashPanel
Sau khi có public key, thêm nó vào FlashPanel theo một trong hai cách:
- SSH Key toàn cục: gắn với tài khoản của bạn, tự động được thêm vào mọi máy chủ mới.
- SSH Keys trên máy chủ: thêm cho một người dùng hệ thống cụ thể trên một máy chủ đang có.
Sau đó đăng nhập bằng private key tương ứng, ví dụ:
ssh -i ~/.ssh/id_ed25519 flashpanel@IP-máy-chủServer SSH Key
Ngoài SSH Key của bạn, mỗi máy chủ còn có một cặp khóa SSH riêng do FlashPanel tạo khi cài đặt. Khóa này dùng để máy chủ kéo mã nguồn từ kho Git riêng tư (GitHub, GitLab, Bitbucket...), ví dụ khi triển khai website.
Để thêm khóa công khai của máy chủ vào tài khoản Git:
- Mở trang Trang chủ của máy chủ, trong nhóm Tiện ích bấm Thêm Server SSH Key.
- Chọn các tài khoản Git đã kết nối rồi bấm Gửi.
- Với nhà cung cấp không hỗ trợ thêm tự động, bấm nút sao chép Server Global SSH Key và tự thêm vào trang quản lý SSH key của nhà cung cấp theo đường dẫn được gợi ý.