Chuẩn bị trước khi tạo VPS: Rèn sẵn SSH Key, khóa chặt tài khoản và chốt trần chi phí
Checklist sống còn trước khi bấm tạo VPS thực hành: bảo mật tài khoản, tạo cặp SSH Key riêng biệt, lưu Fingerprint và đặt trần ngân sách để không lố tiền.
Tạo VPS mà chưa chuẩn bị SSH Key riêng và chưa chốt giờ xóa máy cũng giống như thuê xe tự lái mà quên hỏi giá tính theo giờ — lúc trả xe nhìn hóa đơn chỉ biết cười trừ.
Trước khi háo hức bấm nút khởi tạo chiếc VPS đầu tiên, hãy dừng lại 10 phút để khóa chặt tài khoản nhà cung cấp, rèn sẵn một cặp SSH Key riêng biệt và chốt mức trần ngân sách. Người làm hệ thống có kinh nghiệm luôn xác định rõ ba thứ trước khi đụng vào máy chủ: ai được quyền bước vào cửa, dùng chìa khóa nào để mở, và đúng mấy giờ thì phải dọn dẹp phòng ốc trả mặt bằng. Làm gọn những bước này ngay từ đầu sẽ giúp bạn tập trung thực hành mà không bao giờ phải giật mình vì tiền cước âm thầm nhảy số.
Toàn bộ quy trình trong bài viết này được thiết kế cho một chiếc máy chủ thực hành (lab) có thể xóa bỏ bất cứ lúc nào sau khi học xong. Nếu tài khoản CloudFly của bạn đang chạy sẵn các máy chủ phục vụ khách hàng thật (production), hãy đặt quy tắc đặt tên riêng biệt cho máy lab và đối chiếu mã định danh ở từng thao tác. Tuyệt đối đừng mang những câu lệnh cấu hình bảo mật mà bạn mới đọc lần đầu ra chạy thử ngay trên chiếc VPS đang kiếm cơm hàng ngày.
Khóa kỹ cửa chính: Bảo vệ tài khoản quản lý tại nhà cung cấp
Mọi chiếc VPS đều nằm dưới quyền sinh sát của tài khoản quản trị trên trang điều khiển (control panel) của nhà cung cấp. Hãy đảm bảo bạn đăng ký bằng địa chỉ email do chính mình kiểm soát, nhận được thông báo tức thời và đã thiết lập đầy đủ thông tin khôi phục tài khoản. Nếu nền tảng hỗ trợ xác thực hai yếu tố (2FA/MFA), hãy bật ngay lập tức và cất mã khôi phục dự phòng (recovery codes) vào trình quản lý mật khẩu an toàn — đừng bao giờ để lộ các mã này trong ảnh chụp màn hình khi đi hỏi bài.
Tiếp theo, hãy dạo một vòng qua mục quản lý số dư ví, phương thức thanh toán tự động và cài đặt cảnh báo chi phí. Nếu hệ thống có tính năng gửi email nhắc nhở khi số dư chạm ngưỡng, bạn cần phân biệt rõ: tính năng đó chỉ gửi thư báo tin cho bạn biết, hay sẽ tự động cắt dịch vụ? Một bức thư cảnh báo nằm ngủ quên trong hộp thư Spam hoàn toàn không thể ngăn chiếc Cloud Server tiếp tục tiêu tiền theo giờ.
Trong trường hợp bạn làm việc nhóm hoặc nhờ đàn anh vào xem hộ cấu hình, hãy sử dụng tính năng phân quyền tài khoản phụ (IAM/Sub-account) nếu nhà cung cấp hỗ trợ, thay vì đưa thẳng mật khẩu tài khoản gốc. Nếu hệ thống chưa tách quyền chi tiết được, hãy thống nhất rõ phạm vi thao tác, thời gian bắt đầu và kết thúc, đồng thời chỉ tạo những khóa truy cập hoặc API token thực sự cần thiết cho buổi làm việc đó.
Ba thứ cần có trước tạo VPS: quyền tài khoản, khóa SSH và giới hạn lab
Sơ đồ 3 trụ cột chuẩn bị trước khi khởi tạo máy chủ, hoàn toàn độc lập với thông tin đăng nhập hay dữ liệu thanh toán thực tế.
Rèn bộ chìa khóa SSH Key dành riêng cho môi trường thực hành
Nếu bạn đang ngồi trên macOS hoặc các bản phân phối Linux, công cụ OpenSSH gần như đã có sẵn; bạn có thể gõ ssh -V trong terminal để xác nhận phiên bản. Trước khi sinh khóa mới, hãy chọn một cái tên thật rõ ràng và chưa từng tồn tại trong máy để không vô tình ghi đè lên cặp khóa đang dùng cho công việc hàng ngày. Bạn hãy chạy đoạn lệnh an toàn dưới đây và tự tay nhập mật khẩu bảo vệ khóa (passphrase) khi được hỏi:
(set-eulab_ssh_dir="$HOME/.ssh"if[-L"$lab_ssh_dir"];thenprintf'%s\n''Dừng: .ssh là symlink; cần kiểm đường dẫn trước.'>&2exit 1elif[-e"$lab_ssh_dir"];thentest-d"$lab_ssh_dir"test-O"$lab_ssh_dir"test-w"$lab_ssh_dir"test-x"$lab_ssh_dir"lab_unsafe_dir=$(find"$lab_ssh_dir"-prune\(-perm-0020-o-perm-0002\)-print)if[-n"$lab_unsafe_dir"];thenprintf'%s\n''Dừng: .ssh cho nhóm hoặc người khác quyền ghi; cần kiểm tra quyền trước.'>&2exit 1fielsemkdir-m 700 "$lab_ssh_dir"filab_key_path="$lab_ssh_dir/localhost-lab"for lab_key_file in"$lab_key_path""$lab_key_path.pub";doif[-e"$lab_key_file"]||[-L"$lab_key_file"];thenprintf'%s\n''Dừng: tên khóa đã có file hoặc symlink; chọn tên khác.'>&2exit 1fidonessh-keygen-t ed25519 -f"$lab_key_path"-C"localhost-lab")
Lưu ý chạy khối lệnh trên bằng đúng tài khoản người dùng bình thường của bạn trên máy cá nhân, tuyệt đối không gõ thêm sudo ở đầu kẻo file khóa tạo ra lại thuộc quyền sở hữu của Root. Thư mục ~/.ssh phải nằm dưới quyền kiểm soát của riêng bạn với chế độ phân quyền chuẩn 700 (không cho phép tài khoản khác đọc hay ghi vào). Đoạn script trên đã được cài chốt an toàn: nó giữ nguyên quyền thư mục hợp lệ đang có, tự động dừng lại nếu phát hiện đường dẫn là một liên kết tượng trưng (symlink) bất thường hoặc tên file khóa đã tồn tại. Nếu chẳng may đang tạo khóa mà bị ngắt giữa chừng, hãy liệt kê các file trong thư mục để dọn dẹp hoặc đổi sang tên mới chứ đừng nhắm mắt bấm ghi đè. Sau khi chạy xong, bạn sẽ thu được hai file: localhost-lab là chìa khóa bí mật (Private Key — giữ tuyệt mật trên máy bạn), còn localhost-lab.pub là ổ khóa công khai (Public Key). Bạn chỉ được phép sao chép nội dung bên trong file .pub để dán lên giao diện của nhà cung cấp.
Với anh em dùng Windows 10/11, bạn hoàn toàn có thể mở PowerShell lên và dùng sẵn công cụ OpenSSH Client để tạo cặp khóa riêng nằm trong thư mục người dùng của mình. Trước khi bấm Enter, hãy ngó xem tên file Private Key lẫn file .pub đã có sẵn chưa; nếu công cụ hỏi câu “Overwrite (y/n)?” thì hãy bấm n ngay để bảo toàn khóa cũ. Phần lưu ý cho Windows ở đây được bổ sung để bạn tiện tra cứu, còn các bước thực nghiệm trực tiếp trong bài này được thực hiện trên môi trường POSIX (macOS/Linux).
Nhớ rằng cơ chế phân quyền tệp tin (ACL) trên Windows hoạt động khác hẳn lệnh chmod 600 trên Linux, nên bạn đừng máy móc copy lệnh chmod sang PowerShell. Nếu máy Windows báo không tìm thấy lệnh ssh hay ssh-keygen, bạn chỉ cần bật tính năng OpenSSH Client trong phần Optional Features theo hướng dẫn chính thức của Microsoft.
Ảnh chụp giao diện thực tế ngày 30/09/2026 (có đóng dấu logo localhost.vn), minh họa bước chọn SSH Key riêng cho máy thực hành LAB-CF-01 trên biểu mẫu tạo máy. Bức ảnh này mới xác nhận thao tác chọn trên giao diện, chưa phải bằng chứng đã đăng nhập thành công hay đã đối chiếu Host Fingerprint. Nhấp vào ảnh để xem kích thước đầy đủ.
Ghi chép mã vân tay (Fingerprint) vào sổ tay, tuyệt đối không dán Private Key
Ngay trên máy tính cá nhân, bạn có thể trích xuất mã nhận diện (Fingerprint) của chiếc chìa khóa vừa tạo bằng câu lệnh gọn nhẹ sau:
ssh-keygen-lf ~/.ssh/localhost-lab.pub
Hãy lưu lại chuỗi Fingerprint này vào biên bản thực hành của bạn kèm theo tên file khóa, ngày giờ khởi tạo và mục đích sử dụng. Chuỗi băm ngắn gọn này đóng vai trò như “số căn cước” giúp bạn nhận diện đúng chiếc khóa mình cần tìm mà không hề làm lộ thông tin nhạy cảm của Private Key. Nếu giao diện quản lý của nhà cung cấp có hiển thị mã Fingerprint của các khóa đã tải lên, bạn chỉ việc so hai chuỗi này khớp nhau là yên tâm không chọn nhầm khóa.
Một nguyên tắc kỷ luật thép khi viết tài liệu hoặc chụp màn hình nhờ người khác hỗ trợ: nếu trên màn hình terminal đang mở nội dung file Private Key, hãy đóng cửa sổ đó lại ngay trước khi chụp ảnh. Một tấm ảnh hướng dẫn chuẩn chỉnh chỉ cần hiển thị câu lệnh thao tác, tên nhãn trên biểu mẫu và chuỗi Public Key công khai. Ngoài ra, đừng bao giờ truyền thẳng mật khẩu passphrase vào dòng lệnh (qua cờ -N với chuỗi mật khẩu lộ thiên), bởi nó sẽ nằm chình ình trong file lịch sử câu lệnh (shell history) hoặc danh sách tiến trình hệ thống.
Public key được đăng ký lên máy, private key ở thiết bị người dùng
Sơ đồ phân định rõ vị trí của hai nửa cặp khóa: Public Key gửi lên máy chủ VPS, còn Private Key nằm cố định tại máy tính cá nhân của bạn, không bao giờ gửi qua khung chat hỗ trợ.
Đừng nhầm lẫn giữa Fingerprint khóa cá nhân của bạn và Host Fingerprint của VPS!
Đây là chỗ mà 9 trên 10 người mới học SSH lần đầu đều bối rối: chuỗi Fingerprint bạn vừa lấy ở lệnh trên là mã nhận diện cho chìa khóa người dùng (User Key) mà bạn nạp lên bảng điều khiển. Trong khi đó, ở lần đầu tiên bạn gõ lệnh kết nối SSH vào VPS mới và thấy dòng chữ “Are you sure you want to continue connecting?”, chuỗi mã mà màn hình hiện ra lúc ấy lại là Host Fingerprint — tức dấu vân tay định danh của chính chiếc máy chủ VPS đó. Hai cặp khóa này hoàn toàn khác nhau, nên đừng lấy mã trong file localhost-lab.pub ra so với câu hỏi của SSH rồi thắc mắc sao chúng chẳng giống nhau chút nào!
Để bạn thấy quy trình đối chiếu thực tế, trên màn hình Console web của máy thực hành LAB-CF-02 tại CloudFly, phiên đăng nhập lúc 08:17:04 sáng ngày 01/10/2026 đã xác nhận tên máy (hostname) là localhost-tutorial-lab-02. Khi đọc trực tiếp từ bên trong máy chủ, chuỗi Host Fingerprint chuẩn thuật toán ED25519 của chiếc VPS này là:
Khi đối chiếu chuỗi này với bản ghi trong file known_hosts dưới máy tính cá nhân bằng lệnh ssh-keygen -lf, hai bên khớp nhau hoàn toàn 100%. Tất nhiên, chuỗi mã trên là căn cước riêng của chiếc máy LAB-CF-02 đã chạy hôm đó; khi bạn tự tạo máy VPS của riêng mình, bạn sẽ nhận được một chuỗi Host Fingerprint hoàn toàn mới để tự đối chiếu.
Ảnh chụp màn hình Console thực tế lúc 08:17:04 (giờ Việt Nam) ngày 01/10/2026. Toàn bộ điểm ảnh trong vùng hiển thị lệnh được giữ nguyên bản, chỉ gắn thêm dải logo localhost.vn ở chân ảnh. Bức ảnh này ghi lại khóa định danh công khai của bản thân chiếc VPS (Host Key), không phải khóa đăng nhập của người dùng. Nhấp vào để xem ảnh lớn.
Đặt sẵn trần ngân sách và hẹn giờ xóa máy trước khi bấm nút tạo
Trước khi khởi tạo bất kỳ môi trường thực hành nào trên đám mây, hãy ghi rõ lên giấy: số tiền tối đa được phép tiêu cho buổi học này là bao nhiêu, tạo máy lúc mấy giờ, muộn nhất mấy giờ phải xóa và ai là người trực tiếp bấm nút dọn dẹp. Chẳng hạn, với đợt chạy máy thực hành LAB-CF-02 trong chuỗi bài viết này, định mức ngân sách được phê duyệt tối đa là 50.000đ trong thời gian không quá 48 giờ. Đây là kỷ luật quản lý chi phí nội bộ của buổi thực hành đó, bạn có thể linh hoạt điều chỉnh con số này tùy theo túi tiền và bài tập của mình.
Khi tính nhẩm ngân sách, đừng quên ngó qua đơn giá theo giờ cùng các khoản đi kèm như thuế VAT, tùy chọn Backup tự động, địa chỉ IP tĩnh, ổ cứng gắn thêm, Snapshot hay hệ số tính phí cho các phiên bật máy cực ngắn. Việc lập dự toán giúp bạn kiểm soát cuộc chơi, nhưng số tiền thực trừ cuối cùng vẫn luôn tuân theo quy tắc hạch toán trên hệ thống của nhà cung cấp.
Ảnh chụp giao diện ngày 30/09/2026 (có logo localhost.vn), ghi nhận cấu hình gói Standard tính theo giờ được chọn cho máy thực hành LAB-CF-01. Đơn giá cơ sở 342đ/giờ hiển thị trên biểu mẫu là số liệu lịch sử tại thời điểm chụp, không phải báo giá cố định mãi mãi hay hóa đơn thanh toán cuối cùng. Nhấp để xem rõ hơn.
Kinh nghiệm xương máu là hãy đặt chuông báo thức sớm hơn hạn chót khoảng 1–2 tiếng để còn thong thả trích xuất kết quả log, lưu lại các file cấu hình cần thiết và thực hiện quy trình xóa tài nguyên. Nếu sắp chạm trần ngân sách hoặc hết giờ mà bài thực hành vẫn còn dang dở, hãy lưu nháp các lệnh đã chạy rồi thẳng tay xóa máy nghỉ ngơi — không có lý do gì phải cố đấm ăn xôi để rồi vượt quá hạn mức chi tiêu đã tự hứa với bản thân.
Đặt tên tài nguyên có quy tắc và ghi sổ nhật ký vòng đời máy
Một cái tên rõ nghĩa như localhost-tutorial-lab-02 sẽ giúp bạn nhìn thoáng qua danh sách hàng chục máy chủ là biết ngay đâu là chiếc máy nháp dùng để học tập. Ngay sau khi máy được tạo xong, hãy chép thêm mã định danh duy nhất (Instance ID) vào sổ tay. Đến lúc hoàn tất bài học và vào bấm nút xóa, hãy đối chiếu khớp cả tên gọi lẫn mã ID này — tuyệt đối đừng nhắm mắt bấm xóa cái máy nằm ở dòng đầu tiên trong bảng, vì thứ tự sắp xếp danh sách trên web có thể đảo lộn bất cứ lúc nào.
Một tờ biên bản vòng đời máy lab gọn gàng chỉ cần ghi các trường cơ bản: mục đích bài học, vùng máy chủ (Region), hệ điều hành (OS), thông số gói, tên SSH Key đã gắn, giờ khởi tạo, giờ hẹn xóa, danh sách dữ liệu cần lấy ra và trạng thái sau khi đã dọn dẹp xong. Và xin nhắc lại: không bao giờ ghi mật khẩu, API token hay Private Key vào tờ biên bản này.
Vòng đời lab từ dự toán tới tạo, kiểm, xuất bằng chứng và xóa
Khi dọn dẹp môi trường thực hành, ngoài việc xóa VPS và thu hồi khóa SSH tạm, hãy rà soát cả tab Snapshot, Backup và ổ đĩa rời xem có gì còn sót lại đang tiếp tục tính phí hay không.
Thăm dò sẵn lối thoát hiểm (Console/Rescue) trước khi vọc vạch tường lửa
Trước khi bạn bắt đầu chỉnh sửa file cấu hình SSH (sshd_config) hoặc bật tường lửa UFW, hãy tìm ngay xem nút mở màn hình điều khiển khẩn cấp (Web Console / VNC) của nhà cung cấp nằm ở đâu và làm sao để đăng nhập vào đó khi mất kết nối mạng. Chỉ nhìn thấy cái nút “Console” trên giao diện web thôi thì chưa đủ đảm bảo bạn sẽ vào được bên trong máy lúc khẩn cấp (bởi nếu tài khoản bên trong chỉ có mỗi SSH Key mà chưa đặt mật khẩu cục bộ, màn hình Console hỏi password sẽ khiến bạn đứng hình). Hãy nắm rõ cơ chế cứu hộ trước khi thực hiện những thao tác có nguy cơ tự nhốt mình ở ngoài cửa.
Nguyên tắc bất di bất dịch của các kỹ sư hệ thống lâu năm: khi sửa cấu hình SSH hay Firewall, hãy luôn giữ nguyên cửa sổ terminal đang đăng nhập quyền quản trị (không đóng lại!), đồng thời mở một cửa sổ terminal thứ hai mới tinh để thử kết nối vào máy chủ. Chỉ khi nào cửa sổ thứ hai vào được ngọt ngào thì bạn mới được phép yên tâm đóng cửa sổ đầu tiên. Ở các bài thực hành bảo mật SSH và UFW tiếp theo, chúng ta sẽ áp dụng triệt để tuyệt chiêu này.
Câu hỏi thường gặp (FAQ)
Tôi lười tạo khóa mới, cứ lấy luôn cặp SSH Key đang dùng cho máy chủ công ty gắn vào máy thực hành được không? Về mặt kỹ thuật thì chạy tốt, nhưng về mặt quản trị thì không nên chút nào. Việc tách riêng một cặp khóa cho môi trường thực hành giúp bạn dễ dàng nhận diện và xóa bỏ dứt điểm sau khi học xong mà không sợ ảnh hưởng hay xóa nhầm chiếc chìa khóa quan trọng đang mở cửa các máy chủ chạy thật.
Tôi gõ lệnh exit thoát khỏi cửa sổ SSH rồi thì nhà cung cấp có ngừng tính tiền VPS không? Hoàn toàn không! Thoát phiên làm việc SSH chỉ giống như bạn bước ra khỏi phòng làm việc, còn đèn điện và điều hòa bên trong chiếc máy ảo vẫn đang chạy 100% công suất. Bạn phải kiểm tra trạng thái tài nguyên trên bảng điều khiển và nắm rõ quy định tính phí của nhà cung cấp.
Nếu tôi xóa mục SSH Key trên bảng điều khiển web của nhà cung cấp thì người đang kết nối SSH vào máy có bị văng ra ngay lập tức không? Đừng mặc định như thế. Ở đa số các nền tảng Cloud, danh sách SSH Key trên web chỉ được dùng để chép file khóa vào máy ảo tại thời điểm mới khởi tạo (qua cloud-init). Muốn cắt quyền truy cập của một khóa trên máy đang chạy, bạn phải xóa dòng khóa đó bên trong file ~/.ssh/authorized_keys trên chính chiếc VPS và ngắt các phiên (session) đang mở.
Kinh nghiệm thuê VPS Windows trên CloudFly mượt mà: chọn RAM tối thiểu không đơ máy, kết nối RDP từ Windows/macOS, khóa cổng 3389 và áp mã giảm giá 30%.
Tìm hiểu Cloud Server OpenClaw trên CloudFly: cách dựng trợ lý AI cá nhân trực 24/7 trên VPS riêng, quản lý LLM API Key, Token Limit và áp mã giảm 30%–70%.
Hướng dẫn khởi tạo Cloud Server n8n dựng sẵn trên CloudFly: cách chọn RAM tránh tràn bộ nhớ, cấu hình Webhook, Queue, sao lưu workflow và áp mã giảm tới 70%.
Chào bạn! Web đang dính mã độc, tự nhảy trang lạ hay chạy ì ạch? Chọn nhanh triệu chứng bên dưới — hệ thống sẽ tự động chép sẵn phiếu khám và mở thẳng khung chat Zalo kỹ thuật cho bạn.
1. Chọn hạng mục cần hỗ trợ:
Nội dung sẽ tự động chép khi bấm gửi:
Quét mã từ Zalo điện thoại
Nếu bạn đang ngồi máy tính chưa cài Zalo PC, hãy mở ứng dụng Zalo trên điện thoại và quét mã này để chat trực tiếp với kỹ thuật viên.