HELPER VPS

Kết nối SSH vào VPS từ Windows, cách dùng PowerShell và PuTTY

Chỉ cần một máy tính Windows là kết nối ngay vào máy chủ Linux mà không phải mua thêm chương trình. Tổng hợp cả hai cách: lệnh ssh có sẵn trong PowerShell và PuTTY đã được dùng lâu năm.

Cần chuẩn bị gì trước khi kết nối

SSH là cách trao đổi lệnh được mã hóa giữa máy tính của bạn và máy chủ. VPS Linux được tạo với máy chủ SSH đã bật sẵn, cổng mặc định là 22. Thông tin cần để kết nối chỉ có ba thứ.

  • Địa chỉ IPv4 của máy chủ: hiển thị ở mục tổng quan trang máy chủ.
  • Tên người dùng: lúc đầu dùng root.
  • Mật khẩu root: nhấn Xem ở ô mật khẩu root trên trang máy chủ. Hiển thị trong 7 ngày sau khi đặt, hãy lưu vào trình quản lý mật khẩu.

Kết nối sau khi trạng thái máy chủ chuyển sang đang chạy. Nếu máy chủ đang được tạo hoặc đang cài đặt lại, chờ một chút đến khi cài xong. Trong các lệnh dưới đây, hãy thay YOUR_SERVER_IP bằng địa chỉ IPv4 máy chủ của bạn.

Cách 1. Kết nối bằng lệnh ssh có sẵn trong PowerShell

Windows 10 từ phiên bản 1809 trở đi và Windows 11 có sẵn OpenSSH client. Không cần cài thêm, bạn dùng lệnh ssh y như trên Mac, Linux trong PowerShell hoặc Windows Terminal.

Bước 1. Mở PowerShell

Tìm PowerShell hoặc Terminal trong menu Start và mở. Kiểm tra ssh đã sẵn sàng bằng lệnh dưới đây. Nếu phiên bản OpenSSH hiện trên một dòng là đã sẵn sàng.

PowerShell
ssh -V

Nếu thay vì phiên bản lại báo không tìm thấy lệnh, hãy thêm OpenSSH client trong Tính năng tùy chọn của Cài đặt. Windows 11 ở Cài đặt > Hệ thống > Tính năng tùy chọn, Windows 10 ở Cài đặt > Ứng dụng > Tính năng tùy chọn. Cũng có thể thêm bằng một dòng lệnh dưới đây trong PowerShell quyền quản trị.

PowerShell (quản trị)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Bước 2. Kết nối vào máy chủ

PowerShell
ssh root@YOUR_SERVER_IP

Lần kết nối đầu sẽ hỏi có lưu dấu vân tay của máy chủ không. Nhập yes và nhấn Enter là dấu vân tay được lưu vào tệp known_hosts trên máy bạn, lần sau không hỏi nữa. Tiếp theo khi ô nhập password hiện ra, dán mật khẩu root đã sao chép từ trang máy chủ.

Trong Windows Terminal và cửa sổ PowerShell, dán bằng chuột phải hoặc Ctrl+Shift+V. Mật khẩu không hiện trên màn hình khi nhập là bình thường, chỉ cần dán một lần rồi nhấn Enter. Khi dấu nhắc đổi thành dạng root@ten-may-chu:~# là kết nối thành công.

Bước 3. Chạy lệnh đầu tiên

Vừa kết nối xong nên cập nhật hệ thống lên mới nhất. Ubuntu và Debian chạy apt update && apt upgrade -y, AlmaLinux và Rocky Linux chạy dnf upgrade -y. Thứ tự tạo người dùng thường và cập nhật có chi tiết trong hướng dẫn đăng nhập lần đầu. Làm xong thì kết thúc kết nối bằng exit.

Kết nối không cần mật khẩu bằng khóa SSH trong PowerShell

Dùng khóa SSH thì không phải dán mật khẩu mỗi lần, và vững vàng hơn nhiều trước các lần thử đoán mật khẩu. Trên Windows cũng tạo khóa bằng cùng lệnh ssh-keygen.

PowerShell
ssh-keygen -t ed25519

Khi hỏi vị trí lưu, nhấn Enter để dùng mặc định, và chúng tôi khuyên đặt mật khẩu cho khóa (passphrase). Hai tệp được tạo trong thư mục C:\Users\TenCuaBan\.ssh. id_ed25519 là khóa riêng chỉ để trên máy bạn, còn id_ed25519.pub là khóa công khai đưa lên máy chủ. Xem và sao chép nội dung khóa công khai bằng lệnh dưới đây.

PowerShell
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

Với máy chủ mới, dán khóa công khai vào mục Khóa SSH của tài khoản rồi chọn khóa đó khi tạo máy chủ là kết nối bằng khóa ngay từ đầu. Thứ tự có trong hướng dẫn khóa SSH. Với máy chủ đang dùng, thêm khóa công khai bằng một dòng lệnh dưới đây. Lúc này chỉ nhập mật khẩu root một lần.

PowerShell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@YOUR_SERVER_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Nếu có nhiều máy chủ, lưu thông tin kết nối theo tên sẽ tiện hơn. Tạo tệp C:\Users\TenCuaBan\.ssh\config bằng Notepad và ghi như dưới đây là kết nối chỉ bằng một từ ssh myvps.

C:\Users\TenCuaBan\.ssh\config
Host myvps
    HostName YOUR_SERVER_IP
    User root
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 30

ServerAliveInterval 30 gửi tín hiệu mỗi 30 giây, giúp kết nối được giữ lâu dù bạn rời máy một lúc.

Cách 2. Kết nối bằng PuTTY

PuTTY là chương trình SSH miễn phí được dùng lâu năm trên Windows. Nếu bạn thích lưu thông tin kết nối theo tên và mở bằng nhấp đúp, PuTTY rất phù hợp. Tải tệp cài đặt 64 bit (MSI) từ trang chính thức (putty.org) và cài là có cả PuTTY lẫn PuTTYgen để tạo khóa.

Bước 1. Nhập và lưu thông tin kết nối

  • Mở PuTTY sẽ thấy màn hình Session.
  • Điền địa chỉ IPv4 máy chủ vào Host Name, 22 vào Port, giữ nguyên Connection type là SSH.
  • Ở Connection > Data bên trái, ghi root vào Auto-login username.
  • Điền 30 vào Seconds between keepalives trong Connection để kết nối được giữ lâu.
  • Quay lại màn hình Session, ghi tên (ví dụ: myvps) vào Saved Sessions và nhấn Save.

Bước 2. Kết nối

Chọn tên đã lưu và nhấn Open. Lần đầu sẽ hiện cửa sổ xác nhận dấu vân tay máy chủ, nhấn Accept là dấu vân tay được lưu. Khi ô password hiện ra, dán mật khẩu root bằng chuột phải và nhấn Enter. Trong PuTTY, chuột phải là dán, kéo chọn chữ là sao chép ngay.

Bước 3. Dùng khóa SSH với PuTTYgen

Mở PuTTYgen, chọn EdDSA (Ed25519) ở loại Key rồi nhấn Generate, di chuột trên vùng trống đến khi thanh tiến trình đầy. Đặt Key passphrase và lưu khóa riêng thành tệp .ppk bằng Save private key.

Dòng hiện trong ô Public key for pasting into OpenSSH authorized_keys file ở phía trên cửa sổ là khóa công khai. Đăng ký dòng này vào mục Khóa SSH của tài khoản, hoặc dán vào cuối tệp ~/.ssh/authorized_keys của máy chủ đang dùng. Sau đó trong Connection > SSH > Auth > Credentials của PuTTY, chọn tệp .ppk ở Private key file for authentication, quay lại màn hình Session và nhấn Save lần nữa là lần sau kết nối không cần mật khẩu.

Nếu muốn dùng khóa OpenSSH tạo trong PowerShell cả trên PuTTY, mở id_ed25519 bằng Conversions > Import key của PuTTYgen rồi lưu thành .ppk. Một khóa dùng chung cho cả hai chương trình.

Chuyển tệp giữa Windows và máy chủ

PowerShell có sẵn cả lệnh scp cùng với ssh. Dùng khi tải tệp từ máy bạn lên máy chủ hoặc tải tệp từ máy chủ về máy bạn.

PowerShell
scp .\site.zip root@YOUR_SERVER_IP:/root/
scp root@YOUR_SERVER_IP:/root/backup.tar.gz .\

Chuyển cả thư mục thì thêm scp -r. Nếu thích kéo thả như File Explorer, điền cùng địa chỉ, cổng 22, người dùng root vào chương trình SFTP như WinSCP. WinSCP nhập được nguyên phiên đã lưu và khóa .ppk từ PuTTY.

Thứ tự kiểm tra khi không kết nối được

Hầu hết là một trong bốn trường hợp dưới đây, xem lần lượt là kết nối lại nhanh.

  • Connection timed out: trước hết xem máy chủ có đang chạy và địa chỉ IP có đúng không. Nếu đã bật tường lửa, SSH (cổng 22) phải được cho phép. Có mạng công ty hay trường học chặn cổng 22, nên thử một lần bằng mạng khác như phát Wi-Fi từ điện thoại.
  • Permission denied: sao chép lại mật khẩu và chỉ dán một lần. Kiểm tra cả việc có sao chép kèm khoảng trắng đầu cuối không. Nếu đã quá 7 ngày và mật khẩu không hiện nữa, nhận mật khẩu mới bằng chức năng tạo mật khẩu root mới trên trang máy chủ.
  • REMOTE HOST IDENTIFICATION HAS CHANGED: thông báo xuất hiện vì cài đặt lại máy chủ sẽ tạo dấu vân tay mới. Xóa dấu vân tay cũ đã lưu bằng ssh-keygen -R YOUR_SERVER_IP rồi kết nối lại.
  • Connection refused: dịch vụ SSH trong máy chủ đã dừng hoặc bạn đã đổi cổng. Nếu đã đổi cổng, kết nối bằng ssh -p SO_CONG root@YOUR_SERVER_IP.

Thứ tự tạo lại mật khẩu và kết nối sau khi cài đặt lại có trong hướng dẫn cài đặt lại và mật khẩu root. Kết nối thành công rồi thì chỉ mở các cổng cần dùng theo hướng dẫn tường lửa cơ bản.

Nên làm tiếp những gì

Khi đã kết nối được bằng khóa SSH, tắt đăng nhập bằng mật khẩu để bảo vệ máy chủ chắc chắn hơn. Kiểm tra kết nối bằng khóa trước, rồi trên máy chủ đổi PasswordAuthentication trong tệp /etc/ssh/sshd_config thành no và khởi động lại dịch vụ SSH. Ubuntu và Debian dùng systemctl restart ssh, AlmaLinux dùng systemctl restart sshd.

Nếu định đưa trang web hay ứng dụng lên, tiếp tục với hướng dẫn cài Docker hoặc hướng dẫn cài WordPress. Nếu công việc cần nguyên màn hình desktop Windows, Windows VPS kết nối bằng desktop từ xa sẽ phù hợp hơn.

Hướng dẫn nên xem cùng

Các cấu hình nên làm tiếp sau hướng dẫn này.

Xem tất cả hướng dẫn