如何在 Windows 和 macOS 上通过 SSH 连接 VPS

SSH(Secure Shell)是一种用于远程连接服务器的加密协议。租用 VPS 后,您没有屏幕和鼠标——一切操作都通过 SSH 命令行完成,包括安装软件、配置服务和管理文件。本指南介绍如何从 Windows 和 macOS 通过 SSH 连接 VPS,以及如何进行安全配置。

连接前的准备

第一步:从 Windows 连接(方法一:PuTTY)

  1. 从 putty.org 下载 PuTTY
  2. 打开 PuTTY → 在 Host Name 栏填入 VPS IP
  3. 端口填 22,连接类型选 SSH
  4. 点击 Open → 首次连接时点击「是」确认安全警告
  5. 登录用户名输入 root → 输入密码

第二步:从 Windows 连接(方法二:Windows 终端)

Windows 10 和 Windows 11 内置 SSH 客户端,直接打开命令提示符或 PowerShell 输入:

ssh root@YOUR_VPS_IP

按提示输入密码即可。

第三步:从 macOS 或 Linux 连接

打开终端(macOS:按 Cmd+Space,搜索 Terminal),运行:

ssh root@YOUR_VPS_IP

如需使用 SSH 密钥连接:

ssh -i /path/to/private_key root@YOUR_VPS_IP

登录后常用命令

提升安全性:更改 SSH 端口

将默认端口从 22 改为其他端口,可有效减少自动化机器人扫描:

nano /etc/ssh/sshd_config

找到 #Port 22 这一行 → 改为 Port 2222(或其他未使用的端口)→ 重启 SSH:systemctl restart sshd

最佳实践:日常操作应避免直接使用 root 账户。建议创建普通用户并加入 sudo 组:先运行 adduser myuser,再运行 usermod -aG sudo myuser,之后用该用户登录进行日常工作。

配置 SSH 密钥认证

SSH 密钥认证以密码学密钥对取代密码登录:私钥保存在本地机器,公钥上传到 VPS。每次连接自动验证,无需输入密码,也不会暴露可能被截获的凭据。

生成 SSH 密钥对

在本地机器(Windows 终端、macOS 终端或 Linux)运行:

ssh-keygen -t ed25519 -C "[email protected]"

系统会询问保存路径和是否设置密码短语(强烈建议设置)。完成后生成两个文件:

将公钥复制到 VPS

# Using ssh-copy-id (macOS / Linux)
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@YOUR_VPS_IP

# Manual method
cat ~/.ssh/id_ed25519.pub | ssh root@YOUR_VPS_IP \
  "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

先测试密钥登录是否成功,再通过在 /etc/ssh/sshd_config 中设置 PasswordAuthentication no 并重启 SSH 来禁用密码登录。

配合 SSH 使用 UFW 防火墙

防火墙是保护 VPS 的第一道防线。UFW(简易防火墙)让您只需几条命令就能管理开放端口。最关键的一步是在启用 UFW 之前先允许 SSH 访问——否则您将把自己锁在外面。

# Install UFW (if not already present)
apt install ufw -y

# Allow SSH first (CRITICAL — do this before enabling)
ufw allow 22/tcp

# Allow web server ports
ufw allow 80/tcp
ufw allow 443/tcp

# Enable the firewall
ufw enable

# Check status
ufw status verbose
服务 端口 UFW 命令 说明
SSH 22 ufw allow 22/tcp 启用前必须先允许
HTTP 80 ufw allow 80/tcp 网页流量
HTTPS 443 ufw allow 443/tcp SSL/TLS 流量
MySQL 3306 ufw deny 3306 保持私有,通过 SSH 隧道访问

通过 SSH 传输文件:SCP 与 SFTP

SSH 不仅用于终端会话,还支持两种安全文件传输协议:SCP(安全复制)适合快速命令行传输,SFTP(SSH 文件传输协议)适合交互式文件管理。两者都通过同一 SSH 通道加密传输所有数据。

SCP — 快速命令行传输

# Upload a file from your machine to the VPS
scp /path/to/local/file.zip root@YOUR_VPS_IP:/var/www/html/

# Download a file from the VPS to your machine
scp root@YOUR_VPS_IP:/var/log/nginx/error.log ~/Downloads/

# Copy an entire directory (use -r flag)
scp -r root@YOUR_VPS_IP:/var/www/html/mysite ~/backup/

SFTP — 交互式文件管理

启动 SFTP 会话:

sftp root@YOUR_VPS_IP

在 SFTP Shell 中:ls 列出远程文件,lls 列出本地文件,put file.txt 上传,get file.txt 下载,exit 退出会话。FileZilla、Cyberduck 等图形界面客户端同样支持 SFTP,可拖放操作。

监控 SSH 会话与安全日志

定期查看 SSH 日志,可以了解是否存在未经授权的登录尝试。开放 22 端口的服务器会持续遭受来自全球僵尸网络的自动扫描和暴力破解——即使是全新服务器也不例外。

# Show last 20 successful logins
last -n 20

# Show failed login attempts (Ubuntu / Debian)
grep "Failed password" /var/log/auth.log | tail -30

# Show failed login attempts (CentOS / AlmaLinux)
grep "Failed password" /var/log/secure | tail -30

# Show currently connected sessions
who

# View SSH daemon log via journald
journalctl -u sshd -n 50 --no-pager
日志文件 操作系统 内容说明
/var/log/auth.log Ubuntu / Debian SSH 登录、sudo、PAM
/var/log/secure CentOS / AlmaLinux SSH 登录、sudo、su
journalctl -u sshd 所有 systemd 发行版 SSH 守护进程详细事件

如果发现来自同一 IP 的多次失败尝试,可以安装 Fail2ban 自动封锁恶意 IP,或手动执行 ufw deny from BAD_IP_ADDRESS 进行封锁。

常见问题解答

SSH 密钥比密码更安全吗?

SSH 密钥使用超长且无法猜测的密钥对,而密码可能被猜测或暴力破解。配置好密钥后,建议禁用密码登录以获得最高安全性。

在 Windows 上使用 SSH 需要安装软件吗?

现代 Windows 在命令提示符和 PowerShell 中已内置 ssh 命令,无需额外安装。PuTTY 则是另一个带图形界面的选择,方便管理多个连接。

SSH 使用哪个端口?可以更改吗?

默认端口为 22,可以更改以减少随机攻击,但同时应配合 SSH 密钥和防火墙使用——不要只靠更改端口来保护服务器。

需要高性价比的 Linux VPS?

AsiaGB Linux VPS 最低 750 泰铢/月——完整 root 权限,在泰国和新加坡均有专属 IP。

查看 VPS 方案