VPSKnow

SSH 连接与 Linux 基础操作完全指南

初级-中级
35分钟

购买了 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 终端为例)

1. 打开终端 (Terminal),输入以下命令:

ssh root@192.168.1.1

2. 首次连接会出现指纹确认提示,输入 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

3. 输入密码(注意:输入时屏幕不会显示任何字符,这是正常的安全机制),输完回车:

root@192.168.1.1's password: (此处输入密码无显示)

4. 看到 root@hostname:~# 提示符,恭喜您,连接成功!🎉

Windows 用户连接步骤

使用 Termius (推荐)

  1. 打开 Termius,点击 "NEW HOST"
  2. 填写信息:
    • Address: 您的 IP 地址
    • Port: 22 (或您的自定义端口)
    • Username: root
    • Password: 您的密码
  3. 点击 "Save" 保存配置
  4. 双击刚创建的连接,即可登录

🖥️ 会话管理技巧

SSH 会话断开后,正在运行的程序会终止。使用 tmuxscreen 可以保持会话持久化。

📺 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 操作方法
  1. 连接到服务器。
  2. 点击左侧的 "SFTP" 图标。
  3. 左边是本地文件,右边是服务器文件。
  4. 直接拖拽即可上传或下载。
FileZilla 操作方法
  1. 主机:输入 IP 地址。
  2. 用户名:root,密码:您的密码。
  3. 端口:22
  4. 点击 "快速连接",随后即可拖拽传输。

命令行 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

生成密钥对 (本地电脑)

在本地终端执行:

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_rsa

🎯 使用别名连接

配置完成后,连接变得超级简单:

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

修改默认端口

默认 22 端口每天会被扫描几万次。改为 20000-65535 之间的高位端口。

nano /etc/ssh/sshd_config

找到 #Port 22,改为 Port 23456

Step 2

禁用密码登录

配置好密钥后,彻底关闭密码验证,让暴力破解失效。

PasswordAuthentication no PubkeyAuthentication yes

Step 3

禁用 Root 登录

创建一个普通用户进行日常操作,仅在需要时使用 sudo 提权。

PermitRootLogin no

记得先创建普通用户!

其他安全建议

安装 Fail2Ban

自动封禁暴力破解 IP

限制登录尝试次数

MaxAuthTries 3

禁用空密码

PermitEmptyPasswords no

限制允许登录的用户

AllowUsers admin deploy

⚠️ 重要提醒

修改 SSH 配置后,务必执行 systemctl restart sshd 重启服务才能生效。在关闭当前 SSH 连接前,请先开一个新窗口测试能否正常登录,确保不会把自己锁在门外!

连接性能优化

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 次无响应才断开连接

⚙️ 选择更快的加密算法

使用现代化的加密算法可以提升性能:

Host *
    Ciphers chacha20-poly1305@openssh.com,aes128-gcm@openssh.com
    MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com

🔧 故障排查指南

遇到连接问题?这里是最常见问题的解决方案。

🔴 连接超时 (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

然后重启 SSH:systemctl restart sshd

🔴 经常自动断线

解决方案:配置保活机制(参考"连接性能优化"章节)

客户端配置(~/.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 即可。

什么是 Root 用户?可以删除吗?

Root 是 Linux 系统的超级管理员账户,拥有最高权限。绝对不能删除!但出于安全考虑,建议创建普通用户进行日常操作,只在需要管理权限时使用 sudo 提权。这样即使普通账户被盗,黑客也无法直接获取完整系统控制权。

如何查看服务器的系统版本和配置?

使用以下命令可以查看各种系统信息:

  • uname -a - 系统内核信息
  • cat /etc/os-release - 发行版详细信息
  • lscpu - CPU 信息
  • free -h - 内存使用情况
  • df -h - 磁盘使用情况
  • ip a - 网络接口信息
误删重要文件怎么办?

Linux 下删除文件是不可逆的,没有"回收站"。如果删除了重要文件:1) 立即停止所有写入操作;2) 如果有自动备份,从备份恢复;3) 考虑使用专业数据恢复工具如 extundelete;4) 如果是系统配置文件,可能需要重装系统。预防为主:重要操作前务必备份,使用 rm 命令时千万小心,养成使用 rm -i 确认删除的习惯。

服务器被黑了怎么办?

紧急应对步骤:

  1. 立即断网隔离服务器(在商家后台操作)
  2. 备份所有重要数据
  3. 查看异常进程:ps auxnetstat -tulpn
  4. 检查是否有新增用户:cat /etc/passwd
  5. 查看最近登录记录:lastlastb
  6. 扫描恶意文件和后门

根治方案:如果确认被入侵,最安全的做法是重装系统,然后按照本教程的安全加固章节重新配置。记得吸取教训,做好日常备份。

🚀 下一步行动

掌握了 SSH 只是第一步,接下来您可以开始配置和优化您的服务器了:

还未选定心仪的 VPS?

查看我们的年度精选榜单,找到最适合您的性价比之选。