刚租下一台 GPU 实例,控制台给你一串 IP、一个端口号、一个用户名,可能还有一个 .pem 或 .key 文件。接下来要做的就一件事:把终端连上去。命令本身只有一行,真正卡住人的是私钥权限、非默认端口,以及换了一台机器之后本地 known_hosts 报警。下面按实际操作顺序走一遍。
先把这一行跑通
ssh -p <端口> -i <私钥绝对路径> <用户名>@<IP或域名>比如:
ssh -p 24681 -i ~/.ssh/nexgpu_key [email protected]四个要素都来自控制台的实例详情,缺一个都连不上:
- 主机地址:IP 或分配的域名。
- 端口:租用的容器/虚机大多通过 NAT 映射对外,端口不是 22,而是 2222 或某个高位端口。漏掉
-p直接打 22,表现通常是连接超时或被拒绝,很多人会误以为是机器没起来。 - 用户名:容器实例常见是
root,云主机镜像可能是ubuntu之类。用错用户名的报错是Permission denied (publickey),和密钥出问题长得一样,所以先核对这一项。 - 私钥:
-i后面写本地私钥路径,不是公钥(.pub那个),也不是远端的文件路径。
第一次连接会提示是否信任对方主机指纹,输入 yes 之后会写进 ~/.ssh/known_hosts。
私钥权限:最高频的一个坎
OpenSSH 客户端会检查私钥文件的权限,一旦别的用户也能读,它会直接忽略这把密钥并报错:
WARNING: UNPROTECTED PRIVATE KEY FILE!
Permissions 0644 for 'xxx' are too open.
...
bad permissions: ignore key这不是服务端拒绝你,是本地客户端主动不用这把钥匙,最终表现成认证失败。
Linux / macOS:
chmod 600 ~/.ssh/nexgpu_keyWindows 上没有 chmod,要改 NTFS 的 ACL。图形界面的做法是:右键私钥 → 属性 → 安全 → 高级 → 禁用继承(选择“从此对象中删除所有已继承的权限”),然后只保留当前登录账户。命令行等价做法:
icacls .\nexgpu_key /inheritance:r
icacls .\nexgpu_key /grant:r "$env:USERNAME:(R)"另外注意,从网页下载的私钥常带 Windows 换行或多余空格,用记事本编辑过更容易出问题;有疑问就重新下载或重新生成一对密钥,不要手工修补。
如果平台是让你自己上传公钥,那顺序是:本地 ssh-keygen -t ed25519 生成一对,把 .pub 内容贴进控制台,私钥留在本地不外发。如果平台提供一次性下载的私钥,那就下载后立刻改权限并妥善保存,丢了通常只能重建实例或重新注入公钥。
把长命令收进 ~/.ssh/config
每次手敲端口和路径很累,也容易错。在本地 ~/.ssh/config(Windows 是 C:\Users\你\.ssh\config)里写一段:
Host gpu-a
HostName 203.0.113.42
Port 24681
User root
IdentityFile ~/.ssh/nexgpu_key
IdentitiesOnly yes
ServerAliveInterval 30之后连接就是:
ssh gpu-aIdentitiesOnly yes 的作用是只用指定的这把密钥。本地密钥多的时候,SSH 会挨个试,试到一定次数服务端就把你踢掉,报 Too many authentication failures,加上这一行能避免。ServerAliveInterval 则让长时间挂着训练日志的会话不容易被中间设备掐断。
换实例时改这段配置里的 HostName 和 Port 就行,别名不用变,后面 VS Code 和 scp 都能复用。
VS Code 直接在远端写代码
装微软官方的 Remote - SSH 扩展后,它会读取同一个 ~/.ssh/config,在主机列表里直接看到 gpu-a。点击连接,VS Code 会在远端自动装一个轻量服务端,之后文件浏览、终端、调试、扩展都运行在 GPU 机器上,本地只是界面。对跑训练脚本和调 notebook 来说,这比纯终端顺手很多,远端起的服务端口它也会尝试自动转发。
两点要留意:远端服务端和你在远端装的扩展会写进实例磁盘(~/.vscode-server),占的是实例存储;网络抖动时 VS Code 会自动重连,但正在前台跑的进程会跟着终端一起断,长任务还是要放进 tmux / nohup 或用带 checkpoint 的方式跑,详见云端 GPU 长任务中断恢复与 Checkpoint 设置。
用端口转发打开 ComfyUI、Jupyter 这类 Web 界面
很多镜像里的服务默认只监听 127.0.0.1,从外网直接访问 IP 加端口是打不开的——这是安全设计,不要急着去改成 0.0.0.0 裸奔。正确做法是让 SSH 帮你开一条加密隧道:
ssh -p 24681 -i ~/.ssh/nexgpu_key -L 8188:localhost:8188 [email protected]-L 本地端口:localhost:远端端口 里,localhost 是站在远端机器的角度说的。连接建立后,浏览器打开 http://localhost:8188 就是远端的 ComfyUI。Jupyter 换成 8888,vLLM 的 OpenAI 兼容接口常用 8000,多个服务可以写多个 -L。
配置文件里也能固定下来:
Host gpu-a
...
LocalForward 8188 localhost:8188
LocalForward 8888 localhost:8888只想要隧道、不需要交互式 shell,加 -N -f 让它在后台挂着:
ssh -N -f -L 8188:localhost:8188 gpu-a本地端口被占用会报 bind: Address already in use,把左边换成 18188 之类即可,右边保持服务真实端口不动。

传文件:scp 和 rsync 的端口参数不一样
# 注意 scp 是大写 -P
scp -P 24681 -i ~/.ssh/nexgpu_key ./dataset.zip [email protected]:/workspace/
# rsync 把 ssh 参数整体传进去,断点续传更适合大文件
rsync -avzP -e "ssh -p 24681 -i ~/.ssh/nexgpu_key" ./models/ [email protected]:/workspace/models/配置好 ~/.ssh/config 之后,这两条可以简化成 scp ./dataset.zip gpu-a:/workspace/ 和 rsync -avzP ./models/ gpu-a:/workspace/models/。几十 GB 的权重优先用 rsync,中断了能接着传。
连不上时按这个顺序查
报 REMOTE HOST IDENTIFICATION HAS CHANGED:按小时租用的场景里,IP 和端口会被回收后重新分配给另一台机器,本地 known_hosts 里存的还是上一台的指纹,于是客户端认为有中间人风险并拒绝连接。确认确实是自己刚开的新实例后,清掉旧记录再连:
ssh-keygen -R "[203.0.113.42]:24681"带端口的主机在 known_hosts 里就是 [IP]:端口 这种格式,方括号和引号都要写。
报 Permission denied (publickey):依次核对用户名是否写对、-i 指的是不是私钥、私钥权限是否已经收紧、上传的公钥是不是这把私钥配套的那个。加 -v(或 -vvv)重跑一次,输出里能看到它到底试了哪些密钥、服务端接受哪些认证方式。
连接超时或 Connection refused:多半是端口写成了 22,或者实例还在启动、已经被停机。回控制台确认实例状态和当前映射端口——重启后端口有可能变化,别用昨天的记录。
能连上但 GPU 用不了:先 nvidia-smi 看驱动和卡是否可见,再检查框架版本与 CUDA 是否对得上,这属于镜像层面的问题,和 SSH 无关。选镜像时少踩坑的思路可以看云 GPU 镜像模板怎么选;如果用的是一键部署的模板,环境一般已经配好,换成自己编译反而容易在这一步卡住。
连上之后,顺手把数据和账单的边界确认掉
SSH 通了只是开始,真正影响钱和结果的是这两件事:
数据放哪。把数据集、权重、输出写在镜像说明指定的持久目录里,别散落在系统临时目录。训练产出、微调后的 LoRA、生成的图,跑完就用 rsync 拉回本地或推到你自己的仓库/对象存储。
停机和销毁不一样。在 NexGPU,账单只有算力、存储、流量三项:停机后不再计算力费,但磁盘还在,存储费继续走;只有销毁实例才会全部停止,同时实例上的数据也一并消失。所以“今晚不跑了明天接着跑”适合停机,“这个任务彻底结束了”才销毁,销毁前务必先把要留的东西传走。另外下单时的单价会锁定到销毁为止,长期跑的任务不必担心中途涨价,这也意味着频繁销毁重建要重新按当时价格下单。
准备开第二台机器时,看价格与可租节点确认卡型和当前可用性,挑一个现成镜像(vLLM、PyTorch、ComfyUI、Ollama 这类)能省掉大半环境配置时间——连接方式和上面这套完全一样,只要把 ~/.ssh/config 里的 HostName 和 Port 换掉即可。
NexGPU-算力租赁,GPU服务器,GPU云算力,AI服务器租用-新闻博客
评论(0)