WordPress lỗi sau khi bấm Update: Khi nào nên Rollback, khi nào tung Hotfix sửa tại chỗ?
Bấm update plugin xong giao diện vỡ toang? Bình tĩnh khoanh vùng sự cố, bảo toàn đơn hàng mới và chọn đúng giữa Rollback hay tung bản Hotfix tại chỗ.
Đừng nhầm lẫn giữa User Key của bạn và Host Key của VPS! Hướng dẫn gắn SSH Public Key khi tạo máy và cách đối chiếu Host Fingerprint qua Console đáng tin cậy.
Lúc tạo máy bạn đưa ổ khóa (Public Key) của mình cho VPS, còn lúc đăng nhập lần đầu thì VPS đưa chứng minh thư (Host Fingerprint) của nó cho bạn xem — hai thứ này hoàn toàn khác nhau, đừng đem so chéo!
Khi gắn SSH Public Key trên bảng điều khiển lúc tạo máy, thực chất là bạn đang dặn chiếc VPS mới rằng: “Hãy nhận diện chiếc chìa khóa cá nhân này và mở cửa cho tôi”. Ngược lại, chuỗi mã Fingerprint mà cửa sổ terminal hỏi bạn ở lần kết nối đầu tiên lại là giấy căn cước của bản thân chiếc máy chủ đó (Host Key). Rất nhiều anh em mới làm quen với SSH lấy mã vân tay của khóa cá nhân mình vừa tải lên web đem đi so với dòng thông báo lúc kết nối, thấy hai chuỗi khác hẳn nhau liền hoảng hốt tưởng máy bị cài cắm! Phân biệt rạch ròi hai chiều xác thực này sẽ giúp bạn không bao giờ gõ chữ yes nhầm vào một chiếc máy chủ lạ.
Bài viết này dành cho những bạn đang chuẩn bị khởi tạo VPS thực hành và đã có sẵn bộ công cụ OpenSSH trên máy tính. Trong chuỗi thực nghiệm của chúng tôi, chiếc máy đầu tiên LAB-CF-01 đã đăng nhập thành công bằng khóa riêng nhưng chưa chụp lại bước đối chiếu qua Console; vì vậy, toàn bộ thao tác đối chiếu Host Fingerprint chuẩn chỉnh đã được thực hiện và ghi hình trực tiếp trên chiếc máy thứ hai LAB-CF-02 vào lúc 08:17 sáng ngày 01/10/2026 ngay bên dưới. Hãy nhớ mỗi chiếc VPS sinh ra đều có mã định danh riêng biệt, kết quả của máy này không dùng làm vé thông hành cho máy khác.

Sơ đồ phân biệt nhiệm vụ của cặp khóa người dùng và cặp khóa định danh máy chủ do localhost.vn biên soạn.
Hãy hình dung cuộc hội thoại SSH có hai nhân vật cần chứng minh danh tính. Nhân vật thứ nhất là bạn (người dùng): bạn sở hữu cặp khóa User Key gồm một nửa công khai (Public Key) và một nửa bí mật (Private Key). Bạn gửi nửa Public Key lên gắn vào tài khoản trên VPS, còn nửa Private Key thì cất kỹ trong ổ cứng máy tính cá nhân của mình. Khi đăng nhập, trình khách SSH sẽ dùng phép toán mật mã để chứng minh với VPS rằng bạn đang nắm giữ đúng chiếc Private Key tương ứng mà hoàn toàn không cần truyền file bí mật đó qua đường mạng.
Nhân vật thứ hai là chiếc máy chủ VPS: bản thân hệ điều hành trên VPS cũng tự sinh ra một cặp khóa riêng gọi là Host Key để chứng minh “tôi đúng là chiếc máy chủ mà bạn đang tìm, không phải kẻ giả mạo đứng giữa đường (Man-in-the-Middle)”. Ở lần kết nối đầu tiên, VPS sẽ chìa khóa công khai của nó ra; nếu bạn xác nhận đúng và gõ yes, máy tính của bạn sẽ chép dòng khóa đó vào cuốn sổ tay ~/.ssh/known_hosts để những lần sau tự động nhận diện. Chính vì thế, mỗi khi bạn cài lại hệ điều hành (Rebuild VPS) hoặc nhà cung cấp cấp phát lại địa chỉ IP đó cho một máy ảo mới, Host Key sẽ lập tức thay đổi và SSH sẽ bật cảnh báo đỏ rực để nhắc bạn kiểm tra lại danh tính máy chủ.
Còn thuật ngữ Fingerprint (mã vân tay) đơn giản là một chuỗi băm ngắn gọn (thường dùng thuật toán SHA256) đại diện cho một chiếc Public Key dài ngoằng để mắt người dễ đọc và so sánh. Khi đặt hai chuỗi Fingerprint cạnh nhau, bạn luôn phải tự hỏi: nó đang băm từ khóa cá nhân của mình hay băm từ Host Key của máy chủ? Lấy vân tay của chủ nhà đi so với vân tay của tòa nhà thì chắc chắn không bao giờ trùng nhau, và sự khác biệt đó là hoàn toàn bình thường.
Trên môi trường macOS hoặc Linux, trước khi tạo khóa mới, thói quen tốt nhất là dùng một đoạn lệnh có kiểm tra điều kiện sẵn để không bao giờ vô tình ghi đè lên chiếc khóa đang dùng cho công việc:
(
set -eu
[ -d "$HOME/.ssh" ] || mkdir -m 700 "$HOME/.ssh"
lab_key_path="$HOME/.ssh/cloudfly-lab"
for lab_key_file in "$lab_key_path" "$lab_key_path.pub"; do
if [ -e "$lab_key_file" ] || [ -L "$lab_key_file" ]; then
printf '%s\n' 'Dừng: đường dẫn khóa hoặc symlink đã tồn tại.' >&2
exit 1
fi
done
ssh-keygen -t ed25519 -f "$lab_key_path" -C "cloudfly-lab"
)
Đoạn lệnh trong cặp ngoặc đơn phía trên chạy trong một tiến trình shell con (subshell) rất an toàn: nó kiểm tra cả tên file Private Key lẫn file .pub (bao gồm cả trường hợp symlink bị đứt đích) xem đã tồn tại chưa; nếu thấy vướng bất kỳ file nào thì lệnh sẽ báo dừng ngay mà không làm đóng cửa sổ terminal hiện tại của bạn. Hãy đảm bảo thư mục ~/.ssh thuộc quyền sở hữu của chính tài khoản bạn đang ngồi gõ và giữ quyền truy cập chặt ở mức 700.
Khi công cụ hỏi mật khẩu bảo vệ khóa (passphrase), bạn nên đặt một cụm mật khẩu đủ mạnh nếu chiếc khóa này được lưu trên laptop hay mang đi nhiều nơi, đồng thời cất passphrase đó vào trình quản lý mật khẩu để không quên. Tuyệt đối không gõ lộ passphrase lên dòng lệnh, không chụp dính vào ảnh hướng dẫn và không gửi qua khung chat. Nếu bạn dùng Windows, hãy mở PowerShell và gọi công cụ OpenSSH Client tương ứng trên thư mục tài khoản của mình.
Để xem nội dung chiếc khóa công khai vừa tạo, bạn gõ lệnh:
cat ~/.ssh/cloudfly-lab.pub
Nguyên tắc bất di bất dịch: chỉ có dòng chữ nằm trong file mang đuôi .pub (bắt đầu bằng ssh-ed25519 hoặc ssh-rsa) mới được phép dán lên giao diện web của nhà cung cấp. Nếu mở file lên mà thấy dòng chữ -----BEGIN OPENSSH PRIVATE KEY----- thì hãy đóng lại ngay lập tức! Và nhớ đừng bao giờ gộp chung nội dung của cả hai file vào cùng một ô nhập liệu.
Nếu muốn xem trước mã vân tay của chiếc khóa cá nhân (User Key) này, bạn chạy lệnh:
ssh-keygen -lf ~/.ssh/cloudfly-lab.pub -E sha256
Chuỗi mã hiện ra từ lệnh trên chỉ dùng để bạn đối chiếu với mục quản lý SSH Keys trên bảng điều khiển web của nhà cung cấp (nếu bảng điều khiển có hiển thị vân tay khóa người dùng). Bạn có thể đọc thêm toàn bộ ý nghĩa các tham số dòng lệnh tại trang tài liệu chuẩn OpenSSH ssh-keygen.
Trên giao diện quản lý của CloudFly (đã thực nghiệm với máy LAB-CF-01), bạn vào mục quản lý SSH Keys, bấm thêm khóa mới, đặt một cái tên gắn liền với buổi học rồi dán nguyên vẹn một dòng nội dung của file .pub vào. Phần ghi chú nhỏ ở cuối dòng khóa (comment) giúp bạn nhận biết khóa đó tạo từ máy nào, nhưng phần cốt lõi quyết định việc mở cửa chính là chuỗi ký tự mã hóa ở giữa.

Ảnh chụp thực tế ngày 30/09/2026 cho thấy khóa SSH Key của buổi thực hành đã được tích chọn khi tạo máy; bức ảnh này mới xác nhận thao tác gắn khóa người dùng, chưa phải bước đối chiếu Host Fingerprint của VPS.
Trước khi bấm nút khởi tạo VPS, hãy tự kiểm tra lại xem file Private Key tương ứng trên máy tính cá nhân của bạn có còn nằm đúng chỗ và đọc được bình thường hay không. Nếu bạn nạp Public Key lên mây ngon lành nhưng lại lỡ tay xóa mất file Private Key dưới máy tính, cánh cửa SSH bằng cặp khóa đó sẽ đóng chặt. Sau này khi cần thay đổi hoặc xoay vòng khóa (key rotation) trên một máy chủ đang chạy, hãy luôn thêm khóa mới vào và mở một cửa sổ terminal thử đăng nhập thành công bằng khóa mới trước khi xóa khóa cũ.

Sơ đồ trình tự tạo khóa dưới máy cá nhân và gắn Public Key khi khởi tạo VPS do localhost.vn biên soạn.
Để biết chắc chắn chuỗi vân tay mà cửa sổ terminal đang hỏi ở lần kết nối đầu tiên có đúng là của chiếc VPS bạn vừa thuê hay không, bạn phải lấy mã vân tay gốc thông qua một con đường độc lập — chẳng hạn như màn hình Web Console trực tiếp trên bảng điều khiển của nhà cung cấp. Đừng bao giờ dùng công cụ ssh-keyscan quét qua chính đường mạng Internet công cộng đó rồi tự coi kết quả quét được là bằng chứng xác thực độc lập, bởi nếu đường truyền đang bị can thiệp thì ssh-keyscan cũng chỉ nhặt về chiếc khóa giả mà thôi.
Khi đã mở được màn hình Console tin cậy trên trình duyệt và đăng nhập vào bên trong chiếc VPS Ubuntu, bạn có thể đọc trực tiếp mã vân tay của khóa máy chủ (thường ưu tiên thuật toán Ed25519 hiện đại) bằng câu lệnh chỉ đọc sau:
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256
Đường dẫn /etc/ssh/ssh_host_ed25519_key.pub là vị trí tiêu chuẩn chứa khóa công khai của dịch vụ OpenSSH Server trên Ubuntu. Hãy chú ý đuôi .pub ở cuối — bạn chỉ cần đọc vân tay từ file công khai này, tuyệt đối không mở hay phát tán các file Private Host Key của máy chủ. Khi so sánh, hãy đảm bảo cả trên Console lẫn dưới máy tính cá nhân của bạn đều đang hiển thị cùng một loại khóa (ví dụ cùng là ED25519) và cùng thuật toán băm (SHA256).
Nếu vì lý do nào đó bạn chưa mở được Console hoặc chưa có kênh tin cậy để lấy chuỗi mã này, hãy ghi nhận rõ là bước xác minh danh tính máy chủ chưa hoàn tất, thay vì nhắm mắt bấm yes theo thói quen.
Vào đúng 08:17:04 sáng ngày 01/10/2026 (giờ Việt Nam), chúng tôi đã mở cửa sổ Web Console trên bảng điều khiển CloudFly của chiếc máy thực hành LAB-CF-02 (địa chỉ IPv4 lúc thử nghiệm là 103.82.26.183) và đăng nhập trực tiếp. Gõ lệnh hostname trả về đúng tên máy localhost-tutorial-lab-02; lệnh date -Is ghi nhận mốc thời gian chuẩn múi giờ +07:00. Ngay bên dưới, câu lệnh ssh-keygen -lf /etc/ssh/*ed25519*.pub đã in ra mã vân tay chính chủ của chiếc VPS này.
Ảnh chụp trực tiếp màn hình Web Console lúc 08:17:04 ngày 01/10/2026 (giờ Việt Nam), giữ nguyên vẹn điểm ảnh gốc vùng hiển thị câu lệnh và gắn thêm dải logo ở chân ảnh. Bức ảnh chỉ hiển thị mã vân tay của Public Host Key, hoàn toàn không chứa bất kỳ khóa bí mật hay mật khẩu nào. Nhấp vào ảnh để xem rõ từng chữ.
Chuỗi mã Host Fingerprint thuật toán ED25519 thu được trực tiếp từ Console là:
SHA256:GwVbeXefnnJCtodb35xwi7Vv11nb0N9zevOf+Z0w92g
Khi đối chiếu chuỗi SHA256:GwVbeXefnnJCtodb35xwi7Vv11nb0N9zevOf+Z0w92g này với thông báo kết nối SSH lần đầu và bản ghi trong file known_hosts dưới máy tính cá nhân, hai bên khớp nhau từng ký tự. Đây mới chính là quy trình xác thực kênh đôi (out-of-band verification) chuẩn mực. Tất nhiên, chuỗi mã trên chỉ thuộc về chiếc máy LAB-CF-02 tại thời điểm sáng hôm đó; bạn tuyệt đối không lấy chuỗi này để đối chiếu cho chiếc VPS của bạn hay cho chính chiếc máy đó sau khi đã bấm cài lại hệ điều hành.
Sau khi đã nắm chắc địa chỉ IPv4 từ bảng điều khiển và đường dẫn tới file Private Key dưới máy tính, bạn sử dụng câu lệnh sau để bước vào máy chủ (nhớ thay IP_LAB bằng IP thực tế của máy bạn):
ssh -i ~/.ssh/cloudfly-lab -o IdentitiesOnly=yes root@IP_LAB
Cờ -o IdentitiesOnly=yes là một mẹo rất hay giúp ép trình khách SSH chỉ sử dụng đúng chiếc chìa khóa bạn chỉ định qua cờ -i, tránh tình trạng máy bạn có quá nhiều khóa trong ssh-agent rồi thử lần lượt đến mức bị máy chủ chặn vì sai quá số lần quy định. Trên máy LAB-CF-01, chúng tôi đã dùng lệnh này đăng nhập vào tài khoản root thành công, sau đó tiến hành tạo tài khoản quản trị riêng và cấp quyền sudo. Lưu ý rằng tùy theo bản mẫu hệ điều hành (OS image) của từng nhà cung cấp, tên tài khoản mặc định lúc mới tạo máy có thể là root hoặc ubuntu / debian — hãy đọc kỹ hướng dẫn trên màn hình của nhà cung cấp đó.
Nếu gặp lỗi khi kết nối, hãy chẩn đoán theo đúng tầng kỹ thuật: nếu báo Permission denied (publickey), nghĩa là đường mạng và cổng SSH đã thông suốt nhưng vướng ở khâu chìa khóa hoặc tên tài khoản đăng nhập. Nếu màn hình đứng im rồi báo Connection timed out, hãy kiểm tra lại địa chỉ IP, trạng thái bật/tắt của VPS và tường lửa mạng. Còn nếu SSH hiện bảng cảnh báo to đùng WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!, nghĩa là Host Key của máy chủ ở địa chỉ IP đó đã thay đổi so với lần trước bạn lưu trong known_hosts — hãy dừng lại xác minh xem có phải bạn vừa cài lại máy hay đổi IP không, tuyệt đối đừng nhắm mắt xóa bừa file known_hosts khi chưa rõ nguyên nhân.
Ngay sau khi bạn hoàn thành bài tập, đã xóa hoàn toàn chiếc VPS thực hành trên bảng điều khiển và không còn nhu cầu tái sử dụng cặp khóa tạm đó nữa, hãy vào mục quản lý SSH Keys trên web để gỡ bỏ bản lưu Public Key, đồng thời xóa luôn cặp file khóa tạm trên máy tính cá nhân. Trước khi bấm xóa bất kỳ khóa nào, hãy nhìn kỹ tên khóa để chắc chắn rằng nó không đang được dùng chung cho một chiếc máy chủ quan trọng nào khác.
Với những chiếc VPS đang tiếp tục chạy, hãy nhớ rằng việc xóa file Private Key trên một chiếc laptop hay xóa mục SSH Key trên giao diện web của nhà cung cấp không tự động xóa dòng khóa đã nằm sẵn bên trong file ~/.ssh/authorized_keys của hệ điều hành VPS. Muốn thu hồi quyền truy cập của một người dùng trên máy đang sống, bạn phải vào tận file authorized_keys trên máy đó để gỡ dòng khóa tương ứng ra. Bạn có thể tham khảo thêm cơ chế xác thực chi tiết tại tài liệu chuẩn OpenSSH ssh.

Sơ đồ quy trình xử lý an toàn khi phát hiện mã Host Fingerprint không khớp do localhost.vn biên soạn.
Tôi lấy mã Fingerprint hiển thị trong mục SSH Keys trên web của nhà cung cấp để so với câu hỏi kết nối SSH lần đầu được không? Không được, trừ khi giao diện của nhà cung cấp đó có một mục ghi rõ ràng là “SSH Host Key Fingerprint của Instance”. Còn mục quản lý SSH Keys thông thường trên bảng điều khiển là nơi lưu chìa khóa cá nhân (User Key) của bạn — hai mã vân tay này thuộc về hai cặp khóa hoàn toàn khác nhau.
Khi tôi bấm cài lại hệ điều hành (Rebuild VPS) thì mã Host Fingerprint có bị đổi mới không? Chắc chắn sẽ đổi mới! Vì hệ điều hành mới được cài đặt lại từ đầu nên dịch vụ OpenSSH Server sẽ sinh ra một cặp Host Key mới tinh. Lúc này, bạn chỉ cần mở Console kiểm tra lại mã vân tay mới, rồi dùng lệnh ssh-keygen -R <IP_CỦA_BẠN> để cập nhật lại dòng ghi nhớ cũ trên máy cá nhân là xong.
Khi nhờ nhân viên hỗ trợ kỹ thuật kiểm tra lỗi không đăng nhập được, tôi có nên gửi file Private Key cho họ thử không? Tuyệt đối không bao giờ! Chìa khóa bí mật (Private Key) cũng giống như chữ ký số và mật khẩu ngân hàng của bạn vậy. Để chẩn đoán lỗi kết nối, bạn chỉ cần gửi cho họ kết quả chạy lệnh ssh -vvv (đã lọc bỏ thông tin nhạy cảm) và chuỗi Public Key / Fingerprint công khai là kỹ thuật viên đã đủ dữ kiện kiểm tra.
Khi bạn đã hoàn tất bước gắn khóa công khai và tự tay đối chiếu khớp mã Host Fingerprint qua Console, cánh cửa bước vào chiếc VPS của bạn đã vừa tiện lợi vừa an toàn. Ở các bài tiếp theo trong chuỗi hướng dẫn, chúng ta sẽ cùng đọc kỹ trạng thái máy, chi phí phát sinh và kiểm tra chi tiết phần cứng bằng dòng lệnh.
Tài liệu kỹ thuật OpenSSH liên kết trong bài được đối chiếu vào ngày 30/09/2026; phần hình ảnh và kết quả thực nghiệm trên Console của máy LAB-CF-02 được ghi nhận vào ngày 01/10/2026.