教程 · 快速上手
第一次连接 VPS:SSH 登录、核对指纹与系统首次更新
难度
入门
预计时长
15 分钟
步骤
7 步
最近修订
基准系统
Debian 12
要点
第一次连接 VPS:SSH 登录、核对指纹与系统首次更新
拿到开通信息里的 IP、SSH 端口与 root 密码后,在本地终端执行 ssh root@你的IP 即可登录,Windows 10/11、macOS 与 Linux 都自带 ssh 命令,无需额外安装客户端。登录后的标准动作是核对主机指纹、完成系统首次更新、设置时区与主机名,内存较小的机型再加一块 swap。
前置条件
开始之前,先确认这些都具备
- 一台已开通的 VPS,以及开通信息中的 IP 地址、SSH 端口与 root 密码
- 一台本地电脑(Windows 10/11、macOS 或任意 Linux 发行版)
操作步骤
共 7 步
步骤 01 / 07
打开本地终端并发起连接 #
Windows 用 PowerShell 或 Windows 终端,macOS 用「终端」,Linux 用任意终端模拟器 —— 三者都内置 OpenSSH 客户端,PuTTY 早已不是必需品。如果开通信息里的端口不是 22,必须用 -p 显式指定,否则连接会一直卡到超时。
Shell # 默认 22 端口 ssh [email protected] # 非默认端口(开通信息里写多少就填多少) ssh -p 22022 [email protected]步骤 02 / 07
核对主机指纹,然后才输 yes #
首次连接时终端会打印一段 ED25519 指纹并询问是否继续。这一步不是走过场:它是你唯一一次能确认「连上的确实是自己那台机器」的机会。把指纹与控制台 VNC 里读到的值比对一致再输 yes,之后指纹保存在本地 ~/.ssh/known_hosts,后续连接自动校验。
Shell # 在控制台 VNC 里执行,读出服务器自己的指纹,与本地提示比对 ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub # 如果重装过系统,本地会报 REMOTE HOST IDENTIFICATION HAS CHANGED # 确认过确实是自己重装的,再删掉旧记录 ssh-keygen -R 203.0.113.10步骤 03 / 07
确认拿到的机器和下单的一致 #
花三十秒核对配置,比用了两周才发现磁盘不对要省事得多。重点看核心数、内存、磁盘容量与虚拟化类型 —— lscpu 里的 Hypervisor vendor 应当是 KVM。
Shell cat /etc/os-release uname -r nproc free -h df -h / lscpu | grep -i hypervisor ip -4 addr show scope global步骤 04 / 07
完成第一次系统更新 #
系统镜像的制作日期与你开通的日期之间总有时间差,这段时间累积的安全更新必须先补上。Debian 与 Ubuntu 用 apt,Rocky 与 AlmaLinux 用 dnf。
Shell # Debian / Ubuntu apt update && apt full-upgrade -y && apt autoremove -y # Rocky Linux / AlmaLinux dnf upgrade -y步骤 05 / 07
设置时区与主机名 #
时区决定日志时间戳。面向中国大陆的业务用 Asia/Shanghai 排查最直观,多机房机队则建议统一用 UTC —— 两种选法都对,混着用才是错的。主机名建议带上机房与用途,提示符里一眼能认出自己在哪台机器上。
Shell timedatectl set-timezone Asia/Shanghai timedatectl status hostnamectl set-hostname hk-web-01 # 让 sudo 不再抱怨解析不到主机名 grep -q '^127.0.1.1' /etc/hosts \ && sed -i 's/^127.0.1.1.*/127.0.1.1\thk-web-01/' /etc/hosts \ || echo -e "127.0.1.1\thk-web-01" >> /etc/hosts步骤 06 / 07
给小内存机型加一块 swap #
1 GB 内存的机器在编译、apt 升级或数据库启动时很容易被 OOM Killer 结束进程。一块 1–2 GB 的 swap 文件不会让机器变快,但能让它在内存峰值时活下来。swappiness 设为 10,意思是「实在没办法才用 swap」。
Shell fallocate -l 1G /swapfile || dd if=/dev/zero of=/swapfile bs=1M count=1024 chmod 600 /swapfile mkswap /swapfile swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab echo 'vm.swappiness = 10' > /etc/sysctl.d/99-swappiness.conf sysctl --system free -h步骤 07 / 07
内核更新后重启一次 #
刚才的升级如果换了内核,要重启才生效。趁机器上还没有业务,现在重启的代价是零;等上线之后再补这一步,代价就不是零了。重启后大约二三十秒能重新连上。
Shell # Ubuntu 会留下这个标记文件 test -f /var/run/reboot-required && echo "需要重启" reboot # 等待约 30 秒后重新连接 ssh -p 22022 [email protected] uptime
常见错误
这一步最容易踩的坑
下面每一条都对应一个真实会发生的故障。先读完再动手,比出问题之后再回来查要省时间。
- Permission denied 绝大多数时候不是密码错,而是端口填错,或者从邮件里复制密码时带上了首尾空格。先用控制台 VNC 登录一次,确认密码本身没问题。
- 连接超时与密码无关。先换一个网络(例如手机热点)再试:如果换网络就通,问题在你本地到该机房的路由。提交工单时附上 mtr 结果,比只写「连不上」有用得多。
- 不要长期用 root 做日常操作。root 没有第二次确认机会,一条 rm 打错路径就没有回头路。
- 重装系统会更换主机密钥,本地 SSH 会报指纹变更警告。这个警告存在的意义就是提醒你,别养成一看到就无脑删掉旧记录的习惯。
- swap 不是内存的替代品。如果 free -h 里 swap 长期被占满,说明该升配了,而不是该加大 swap。
这篇教程的边界
- 命令以 Debian 12 为准。Ubuntu 与 Rocky Linux 的差异只在正文明确标注之处,未标注的部分请以你所用发行版的官方文档为准。
- 示例中的 IP 来自文档保留段 203.0.113.0/24,域名为 example.com,端口为示意值。复制后必须替换成自己的值, 原样执行不会有任何效果。
- 教程不能替代备份。任何会改动数据或线上流量的步骤,执行前先确认有一份验证过能恢复的备份。
- 本站不提供任何用于绕过网络审查的配置或说明,这篇也不例外。
发现命令过时或有误,请发邮件到 [email protected]。 指出错误的邮件比沉默的旧文档有价值得多。