购买了 VPS 却不知道如何管理?面对黑乎乎的命令行窗口感到无从下手?别担心,本指南将带您从零开始,全面掌握 SSH 远程连接技术、文件传输方法、会话管理技巧和 Linux 核心命令,让您像操作本地电脑一样轻松管理服务器。
🔑 什么是 SSH?
SSH (Secure Shell) 是一种加密的网络传输协议,用于在不安全的网络中为网络服务提供安全的传输环境。对于 VPS 用户来说,SSH 就是您远程控制服务器的”安全通道”。
🔒
加密传输
所有数据(包括密码和命令)都经过加密,防止被中间人窃听。 💻
命令行控制
通过输入文本命令来操作服务器,资源占用极低,效率极高。 🌐
跨平台支持
Windows、macOS、Linux、移动设备均可使用,随时随地管理服务器。 ⚡
高效稳定
即使在低带宽环境下也能流畅操作,断线自动重连。
🛠️ 选择 SSH 客户端
根据您的操作系统,选择一款趁手的兵器: Windows
Termius / Xshell
- ✅ Termius: 颜值高,全平台同步(推荐)
- ✅ Xshell: 功能强大,个人版免费
- ✅ PuTTY: 经典老牌,轻量开源
- ✅ MobaXterm: 集成工具箱,适合专业用户
下载 Termius macOS
Terminal / iTerm2
- ✅ 系统终端: 开箱即用,无需安装
- ✅ Termius: 跨设备同步配置
- ✅ iTerm2: 极客首选,功能无限
- ✅ Warp: AI 驱动的现代终端
Cmd + Space 搜 Terminal Mobile
手机端
- ✅ iOS: Termius, ServerCat
- ✅ Android: JuiceSSH, Termius
- ✅ 随时随地管理服务器
- ✅ 支持指纹/面容解锁
应用商店搜索下载
🔌 如何连接 VPS?
前提准备
- 1 **IP 地址:**例如
192.168.1.1(在 VPS 后台查看) - 2 **端口号:**默认是
22(部分商家会修改,请查看邮件) - 3 **用户名:**通常是
root - 4 **密码:**购买时设置的密码或邮件收到的初始密码
连接步骤(以 Mac/Linux 终端为例)
- 打开终端(Terminal),输入以下命令:
ssh root@192.168.1.1
- 首次连接会出现指纹确认提示,输入
yes并回车:
The authenticity of host '192.168.1.1' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
- 输入密码(注意:输入时屏幕不会显示任何字符,这是正常的安全机制),输完回车:
root@192.168.1.1's password: (此处输入密码无显示)
- 看到
root@hostname:~#提示符,恭喜您,连接成功!🎉
Windows 用户连接步骤
使用 Termius(推荐)
- 打开 Termius,点击 “NEW HOST”
- 填写信息:
Address: 您的 IP 地址
-
Port: 22(或您的自定义端口)
-
Username: root
-
Password: 您的密码
-
点击 “Save” 保存配置
-
双击刚创建的连接,即可登录
🖥️ 会话管理技巧
SSH 会话断开后,正在运行的程序会终止。使用 tmux 或 screen 可以保持会话持久化。
📺 tmux 快速入门
tmux
启动新会话
Ctrl+B → D
分离会话(程序继续后台运行)
tmux attach
重新连接到会话
tmux ls
列出所有会话
🎬 screen 快速入门
screen -S mywork
创建命名会话
Ctrl+A → D
分离会话
screen -r mywork
恢复指定会话
screen -ls
查看所有会话
💡 使用场景
- 运行需要长时间执行的脚本(如数据备份、系统更新)
- 保持多个工作环境(开发、监控、日志查看)
- 在不稳定网络环境下工作(防止断连导致任务中断)
- 团队协作共享同一终端会话
📁 如何传输文件(SFTP)?
光有命令行是不够的,很多时候我们需要把本地文件上传到服务器,或者把服务器文件下载下来。这就需要用到 SFTP (SSH File Transfer Protocol)。
🚀 推荐工具:Termius 或 FileZilla
如果您使用的是 Termius,它自带了非常好用的 SFTP 面板。如果您使用其他终端,推荐下载免费开源的 FileZilla。
Termius 操作方法
- 连接到服务器。
- 点击左侧的 “SFTP” 图标。
- 左边是本地文件,右边是服务器文件。
- 直接拖拽即可上传或下载。
FileZilla 操作方法
- 主机:输入 IP 地址。
- 用户名:
root,密码:您的密码。 - 端口:
22。 - 点击 “快速连接”,随后即可拖拽传输。
命令行 SFTP 操作
对于喜欢命令行的用户,可以直接使用 sftp 或 scp 命令:
使用 SCP 传输单个文件
# 上传本地文件到服务器
scp /path/to/local/file.txt root@192.168.1.1:/root/
# 下载服务器文件到本地
scp root@192.168.1.1:/root/file.txt /path/to/local/
使用 SCP 传输整个文件夹
# 上传文件夹(-r 递归)
scp -r /path/to/local/folder root@192.168.1.1:/root/
# 下载文件夹
scp -r root@192.168.1.1:/root/folder /path/to/local/
使用 rsync 同步文件(更高效)
# 同步本地文件夹到服务器(只传输差异部分)
rsync -avz /path/to/local/ root@192.168.1.1:/root/backup/
# -a: 归档模式 -v: 详细输出 -z: 压缩传输
📑 常用 Linux 命令速查
连接后怎么操作?这里列出了新手最常用的 50+ 命令,按类别分组。 系统操作 apt update更新软件源列表 (Debian/Ubuntu) apt upgrade升级所有已安装软件 apt install pkg安装软件包 apt remove pkg卸载软件包 reboot重启服务器 shutdown -h now立即关机 htop查看 CPU/内存 占用情况 uname -a查看系统信息 文件管理 ls -la列出所有文件(含隐藏文件) cd /path进入指定目录 pwd显示当前目录 mkdir folder创建文件夹 touch file.txt创建空文件 cp file1 file2复制文件 mv file1 file2移动/重命名文件 rm -rf folder强制删除文件夹(慎用!) 网络操作 curl ip.sb查看服务器公网 IP ping google.com测试网络连通性 wget url下载文件 curl -O url下载文件(保留原名) netstat -tulpn查看端口占用情况 ss -tulpn查看监听端口(更快) traceroute ip追踪网络路由 文件查看 cat file.txt查看文件内容 less file.txt分页查看文件 head -n 20 file查看前 20 行 tail -n 20 file查看后 20 行 tail -f log.txt实时查看日志 grep “text” file搜索文件内容 find / -name file查找文件位置 权限管理 chmod 755 file修改文件权限 chown user file更改文件所有者 chown -R user dir递归更改目录所有者 chmod +x script.sh添加执行权限 磁盘管理 df -h查看磁盘使用情况 du -sh folder查看文件夹大小 du -h —max-depth=1查看当前目录各子目录大小 ncdu交互式磁盘分析 压缩解压 tar -czvf a.tar.gz dir压缩文件夹 tar -xzvf a.tar.gz解压缩 zip -r a.zip dir创建 ZIP 压缩包 unzip a.zip解压 ZIP 实用工具 docker ps查看运行中的容器 systemctl status svc查看服务状态 history查看历史命令 alias ll=‘ls -la’创建命令别名
✏️ 文本编辑器使用
在服务器上修改配置文件是家常便饭,掌握一款文本编辑器必不可少。
📝 nano(新手友好)
最简单的编辑器,界面直观,有底部快捷键提示。
nano file.txt
打开文件
Ctrl + O
保存文件
Ctrl + X
退出编辑器
Ctrl + W
搜索文本
⚡ vim(进阶推荐)
功能强大但学习曲线陡峭,熟练后效率极高。
vim file.txt
打开文件
i
进入插入模式(开始编辑)
ESC :wq
保存并退出
ESC :q!
不保存强制退出
💡 新手建议
刚开始建议使用 nano,界面友好,快捷键都显示在底部。等熟悉 Linux 后再学习 vim,它的效率会让您爱不释手。
⚙️ 进程与服务管理
了解如何查看和管理运行中的程序,是服务器管理的重要技能。 进程管理 ps aux查看所有进程 top实时监控进程 htop更美观的进程监控 kill -9 PID强制结束进程 pkill name按名称结束进程 服务管理(systemd) systemctl start svc启动服务 systemctl stop svc停止服务 systemctl restart svc重启服务 systemctl enable svc设置开机自启 systemctl status svc查看服务状态
🔐 进阶:使用密钥登录
密码登录容易被暴力破解,使用 SSH 密钥对登录不仅更安全,而且可以免密登录,体验极佳。
配置步骤
1
生成密钥对(本地电脑)
在本地终端执行(推荐使用更安全的 Ed25519 算法):
ssh-keygen -t ed25519 -C "your_email@example.com"
一路回车即可。这会生成私钥 id_ed25519 和公钥 id_ed25519.pub。
2
上传公钥到服务器
使用简单命令一键上传:
ssh-copy-id root@your-server-ip
输入一次密码后,公钥就会自动写入服务器。 3
测试免密登录
再次连接,应该直接进入系统:
ssh root@your-server-ip
🔒 安全提示
- 私钥安全:私钥文件(id_ed25519)相当于万能钥匙,务必妥善保管,不要泄露
- 设置密码保护:生成密钥时可以为私钥设置密码,增加一层保护
- 备份密钥:建议将私钥备份到安全位置,防止丢失
⚙️ SSH 配置文件优化
通过配置文件,您可以为不同服务器设置别名,大幅提升连接效率。
创建配置文件
编辑本地的 SSH 配置文件(如果不存在会自动创建):
nano ~/.ssh/config
添加服务器配置
Host myserver
HostName 192.168.1.1
Port 22
User root
IdentityFile ~/.ssh/id_ed25519
Host vps2
HostName 203.0.113.45
Port 2222
User admin
IdentityFile ~/.ssh/id_ed25519
🎯 使用别名连接
配置完成后,连接变得超级简单:
ssh myserver
无需记忆复杂的 IP 地址和端口,一个简短的别名搞定!
🔀 端口转发与隧道
SSH 不仅能远程登录,还能建立安全隧道,实现端口转发和代理功能。
➡️ 本地端口转发
将服务器端口映射到本地,访问服务器内网服务。
ssh -L 8080:localhost:80 root@server-ip
访问本地 localhost:8080 等同于访问服务器的 80 端口
⬅️ 远程端口转发
将本地端口映射到服务器,外网访问内网服务。
ssh -R 9000:localhost:3000 root@server-ip
外网访问服务器 9000 端口即可访问本地 3000 端口
🌐 动态端口转发(SOCKS 代理)
创建一个 SOCKS5 代理,浏览器流量通过服务器。
ssh -D 1080 root@server-ip
配置浏览器使用 localhost:1080 作为 SOCKS5 代理
🔁 保持隧道运行
使用 -N 参数只建立隧道不登录,-f 后台运行。
ssh -fNL 8080:localhost:80 root@server-ip
隧道在后台运行,不占用终端窗口
🛡️ SSH 安全加固
新服务器拿到手,优先建立可验证的密钥登录和普通管理用户,再收紧认证方式。修改端口只能减少扫描日志噪声,不能替代密钥认证、防火墙和登录审计。
Step 1
先验证密钥与普通用户
先为普通管理用户安装公钥,并在另一个终端确认无需密码即可登录。
ssh-copy-id admin@server-ip
保留当前会话,确认 sudo 权限和密钥登录都正常后再继续。
Step 2
再收紧认证方式
仅在密钥已验证且有控制台恢复入口时关闭密码认证。
PasswordAuthentication no PubkeyAuthentication yes
Step 3
最后限制 Root 与入口
普通用户验证成功后禁用 Root 远程登录,并按实际管理来源限制防火墙。
PermitRootLogin no
换端口是可选降噪措施;变更前先放行新端口,并确认系统是否使用 socket activation。
其他安全建议
✅
安装 Fail2Ban
自动封禁暴力破解 IP ✅
限制登录尝试次数
MaxAuthTries 3 ✅
禁用空密码
PermitEmptyPasswords no ✅
限制允许登录的用户
AllowUsers admin deploy
⚠️ 重要提醒
修改配置后先执行 sudo sshd -t;只有校验通过才运行 sudo systemctl reload ssh,若发行版不支持平滑重载,再按其服务单元使用 restart。始终保留当前会话,并在新窗口验证密钥、端口和 sudo 后再退出。
⚡ 连接性能优化
SSH 连接速度慢?经常断线?这些优化技巧能显著改善体验。
🚀 启用连接复用
多个 SSH 连接共享一个 TCP 连接,显著提升连接速度。在本地 ~/.ssh/config 添加:
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h:%p
ControlPersist 10m
首次连接后,10 分钟内的新连接几乎是瞬间完成!
📡 压缩传输数据
在带宽有限的情况下启用压缩:
Host *
Compression yes
🔄 保持连接活跃
防止长时间无操作被服务器或防火墙断开:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
每 60 秒发送一次心跳包,3 次无响应才断开连接
⚙️ 优先沿用 OpenSSH 安全默认值
现代 OpenSSH 会随安全更新调整算法默认值。除非有合规或兼容性依据,不要复制固定的 Ciphers/MACs 清单,以免未来遗漏新默认值或锁死旧客户端。
# 查看客户端当前支持的算法;仅用于排查,不代表应全部启用
ssh -Q cipher
ssh -Q mac
🔧 故障排查指南
遇到连接问题?这里是最常见问题的解决方案。
🔴 连接超时(Connection timed out) 1.
检查 IP 地址是否正确,端口号是否正确(默认 22)
2.
确认 VPS 已开机运行(登录商家后台查看)
3.
检查本地网络是否正常,尝试 ping IP 测试连通性
4.
检查服务器防火墙是否放行了 SSH 端口
5.
如果 IP 被墙,尝试使用 VPN 或更换线路
🔴 Permission denied (publickey)
**原因:**服务器要求密钥登录,但您的私钥不匹配或未被加载。
解决方法:
-
确认私钥权限:
chmod 600 ~/.ssh/id_ed25519 -
显式指定私钥:
ssh -i ~/.ssh/id_ed25519 root@ip -
检查公钥是否在服务器:
cat ~/.ssh/authorized_keys -
如彻底无法登录,使用 VPS 商家后台的 VNC 控制台重置配置
🔴 Connection refused
**原因:**目标端口未开放或 SSH 服务未运行。
排查步骤:
-
检查 SSH 服务状态:
systemctl status sshd -
启动 SSH 服务:
systemctl start sshd -
查看端口监听:
ss -tlnp | grep :22 -
检查防火墙规则是否允许端口访问
🔴 SSH 连接很慢,需要等待 10-30 秒
**原因:**通常是 DNS 反向解析或 GSSAPI 认证导致。
解决方法(服务器端配置):
编辑 /etc/ssh/sshd_config,添加或修改:
UseDNS no
GSSAPIAuthentication no
先运行 sudo sshd -t;校验通过后执行 sudo systemctl reload ssh,并在新终端验证连接。
🔴 经常自动断线
**解决方案:**配置保活机制(参考”连接性能优化”章节)
客户端配置(~/.ssh/config):
ServerAliveInterval 60
ServerAliveCountMax 3
或使用 tmux/screen 保持会话
🔴 粘贴内容到终端失败或格式错乱
不同系统的粘贴方法:
- **Windows(PuTTY/CMD):**直接点击鼠标右键
- **macOS Terminal:**Cmd + V
- **Linux Terminal:**Ctrl + Shift + V 或鼠标中键
- **Termius:**Ctrl + V(Windows)或 Cmd + V(Mac)
**提示:**粘贴长脚本前建议先保存到文件,然后使用 nano 编辑器打开编辑
❓ 常见问题解答
SSH 和 VNC 有什么区别?
SSH 是命令行界面,通过文本命令操作,占用资源极少,适合日常管理。VNC 是图形界面,可以看到完整的桌面环境,但占用带宽大,一般用于紧急情况或需要图形界面的场景。对于服务器管理,99% 的情况下使用 SSH 即可。VNC 最大的价值在于:当 SSH 无法连接(如误封防火墙、sshd 服务崩溃)时,VNC 是唯一能不借助网络重置服务器的”救命绳”。
什么是 Root 用户?可以删除吗?
Root 是 Linux 系统的超级管理员账户,拥有最高权限。**绝对不能删除!**但出于安全考虑,建议创建普通用户进行日常操作,只在需要管理权限时使用 sudo 提权。这样即使普通账户被盗,黑客也无法直接获取完整系统控制权。创建普通用户:adduser deploy && usermod -aG sudo deploy
如何查看服务器的系统版本和配置?
使用以下命令可以查看各种系统信息:
-
uname -a— 系统内核信息 -
cat /etc/os-release— 发行版详细信息 -
lscpu— CPU 信息 -
free -h— 内存使用情况 -
df -h— 磁盘使用情况 -
ip a— 网络接口信息误删重要文件怎么办?
Linux 下删除文件是不可逆的,没有”回收站”。如果删除了重要文件:① 立即停止所有写入操作;② 如果有自动备份(快照/Rclone),从备份恢复;③ 考虑使用专业数据恢复工具如 extundelete;④ 如果是系统配置文件,可能需要重装系统。**预防为主:**重要操作前务必备份,使用 rm 命令时千万小心,养成使用 rm -i 交互式确认删除的习惯,或用 trash-cli 替代 rm 实现软删除。
服务器被黑了怎么办?
紧急应对步骤:
- 立即断网隔离服务器(在商家后台操作)
- 备份所有重要数据
- 查看异常进程:
ps aux和netstat -tulpn - 检查是否有新增用户:
cat /etc/passwd - 查看最近登录记录:
last和lastb - 扫描恶意文件和后门
根治方案:如果确认被入侵,最安全的做法是重装系统,然后按照本教程的安全加固章节重新配置。记得吸取教训,做好日常备份。 如何用 VS Code 直接远程编辑服务器上的文件?
使用 VS Code 的 Remote - SSH 插件(微软官方出品,扩展商店搜索 ms-vscode-remote.remote-ssh)。安装后,点击左下角蓝色图标 → “Connect to Host” → 输入 root@your-server-ip,即可像打开本地项目一样在 VS Code 中编辑服务器文件,支持语法高亮、Git、终端、调试全套功能。建议先在 ~/.ssh/config 中配置好别名,这样连接会更便捷。这是目前最主流、最高效的服务器代码编辑方式,强烈推荐。
为什么推荐 Ed25519 密钥而不是传统 RSA?有什么区别?
Ed25519 是基于椭圆曲线的现代签名算法,与 RSA-4096 相比:① 密钥更短(68 个字符 vs 数千字符),复制粘贴更方便;② 速度更快,握手和签名耗时更低;③ 安全性更强,即使量子计算机时代来临也有更好的抗性;④ 兼容性好,所有现代 OpenSSH 版本(6.5+,2014 年以后的系统)均支持。唯一需要注意的是极少数老旧系统(如 CentOS 6、Ubuntu 12.04 等已停止维护的版本)不支持 Ed25519,此类情况才需退而求其次使用 RSA-4096。新机器一律推荐 Ed25519。
在 Windows 上用 WSL2 连接 VPS 有什么优势?
**WSL2(Windows Subsystem for Linux 2)**是微软提供的完整 Linux 内核环境,在 Windows 11 上开箱即用。使用 WSL2 连接 VPS 的好处:① 可以直接使用原生 Linux 命令行工具(ssh、rsync、scp);② ~/.ssh/config 配置与 Linux/macOS 完全一致,教程通用;③ 方便本地测试 Shell 脚本后再部署;④ 结合 VS Code Remote - WSL 扩展,可以获得接近原生 Linux 的开发体验。开启方式:PowerShell 执行 wsl --install,重启后即可使用。对于重度 VPS 用户,WSL2 + VS Code Remote SSH 是 Windows 上目前最佳的工作流。
什么是 SSH Agent 转发?在跳板机场景下如何使用?
**SSH Agent 转发(Agent Forwarding)**允许您从 A 机器 SSH 到 B 机器后,再从 B 免密跳到 C,而无需把私钥复制到 B 上(私钥始终存在本地,安全)。使用方式:在 ~/.ssh/config 中对跳板机添加 ForwardAgent yes,或连接时使用 ssh -A root@jump-server。现代场景中更推荐使用 SSH 的 ProxyJump(-J参数),例如:ssh -J root@jump-server root@backend-server,这种方式更安全,不暴露跳板机的代理权限。在 ~/.ssh/config 中配置:ProxyJump jump-server,即可一条命令直连内网机器。
SSH 报错 "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED" 怎么解决?
这个报错意味着服务器的主机指纹(Host Key)与本地 ~/.ssh/known_hosts 中记录的不匹配。常见合理原因:重装了系统(指纹会变)、更换了服务器 IP、商家迁移了底层主机。确认是正常操作后,删除旧记录即可:执行 ssh-keygen -R 你的服务器IP,再次连接时会重新验证并保存新指纹。**注意:**如果您并没有重装或更换机器,此报错也可能意味着中间人攻击(MITM),此时应谨慎,先通过商家控制台 VNC 确认服务器状态,不要轻易跳过验证。
🚀 下一步行动
掌握了 SSH 连接,接下来深入了解系统选择和核心术语: [ 🐧
Linux 发行版选择指南
Ubuntu、Debian 还是 CentOS?深入对比各发行版优缺点与适用场景。 开始学习 ](/guides/os-selection-guide)[ 📖
VPS 核心术语百科
QOS、原生IP、CN2 GIA、三网直连……新手必看的名词解释大全。 开始学习 ](/guides/vps-glossary)[ ⭐
VPS 推荐榜单
查看 VPS 实测与服务商索引,先看结论再去官网。 查看推荐 ](/vps-recommendations)[ 📚
浏览更多教程
继续探索服务器安全、网站搭建、性能优化和 AI 环境主题。
探索教程 ](/guides)
读完后建议
先验证,再选择 把判断落到具体选择
准备购买 VPS 时,先对照推荐榜单和真实测评确认线路、价格、用途与风险;只是继续学习,可以回到教程索引按主题往下看。
查看推荐榜单 回到教程索引