GPU服务器租用安全配置实战:SSH密钥与端口最小化开放

拿到GPU服务器租用实例后,很多开发者会立刻上传代码,却忽略SSH口令、监听端口和服务暴露范围。训练脚本、模型权重与接口一旦直接暴露到公网,风险远高于普通开发机。本文用一套最小配置,完成实例上线前的基础检查。

一、问题背景

GPU算力平台常通过SSH、JupyterLab或WebUI提供入口。弱口令、无关端口或服务监听所有网卡,可能带来扫描与误访问。大模型训练和推理部署运行时间长,安全配置应在上传数据前完成。

安全并不是把所有端口关闭,而是只开放当前任务需要的入口,并限制访问来源。AI算力平台控制台规则与Linux主机配置应同时检查,避免只改其中一层。

二、环境准备

准备本地电脑、云GPU实例及备用会话。修改SSH前不要关闭当前连接,并记录端口规则、登录用户和应用端口。

润云智算提供按需GPU实例、平台镜像及SSH、JupyterLab等开发入口,可从官网查看实时资源。不同镜像的默认用户与访问方式可能不同,应以实例页面说明为准。

三、实操步骤

1. 在本地创建独立密钥

bash 复制代码
ssh-keygen -t ed25519 -a 64 \
  -f ~/.ssh/gpu_project_ed25519 \
  -C "gpu-project"

为密钥设置口令,不要把私钥上传到聊天工具、网盘或代码仓库。.pub公钥可写入授权列表。

2. 安装公钥并测试新连接

bash 复制代码
ssh-copy-id -i ~/.ssh/gpu_project_ed25519.pub user@server_ip
ssh -i ~/.ssh/gpu_project_ed25519 user@server_ip

没有ssh-copy-id时按平台文档添加公钥。确认新窗口能登录后再修改。

3. 收紧SSH配置

先备份配置:

bash 复制代码
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo sshd -t

在配置中确认或设置:

text 复制代码
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
MaxAuthTries 3

先执行sudo sshd -t检查语法,再重载SSH。禁用密码前必须验证密钥登录;托管镜像应优先遵循平台文档。

4. 盘点真实监听端口

bash 复制代码
ss -lntup
sudo lsof -i -P -n | head -n 30

区分127.0.0.1与0.0.0.0:前者仅本机访问,后者可能对外暴露。TensorBoard、Jupyter和临时API不应默认公开。

5. 用SSH隧道访问本地服务

假设Jupyter只监听实例的127.0.0.1:8888,可在本地执行:

bash 复制代码
ssh -i ~/.ssh/gpu_project_ed25519 \
  -L 8888:127.0.0.1:8888 user@server_ip

随后访问本地http://127.0.0.1:8888,无需把开发端口暴露公网。

6. 最小化平台端口规则

仅保留SSH和业务端口,并限制到可信来源。正式API还应配置鉴权、限流与日志。

最后验证允许与阻断结果并保存清单,再进入模型上传和推理部署。

四、常见问题与解决方案

1. 关闭密码后无法登录

保持原会话不要退出,恢复备份配置并检查公钥权限。~/.ssh通常应仅允许本人访问,authorized_keys也不应对其他用户开放写权限。

2. 服务端口未开放却仍可访问

检查进程监听地址、已有会话、反向代理及平台规则,确认测试的是公网地址而非SSH隧道。

3. Jupyter必须开放公网吗

多数个人开发场景不需要,可通过SSH隧道访问。确需共享时,应启用令牌或登录认证并限制来源。

4. 更换镜像后规则还在吗

平台规则和系统配置的保留方式可能不同。重建实例后应重新执行清单,不要假设旧配置自动继承。

五、总结

实例安全的核心是密钥登录、禁止高风险入口、盘点监听端口与限制来源。通过平台规则和主机配置双重检查,可以减少开发服务误暴露。

FAQ

Q1:SSH端口改成非常用端口就安全吗?

只能减少部分扫描,不能替代密钥、来源限制和登录日志。

Q2:私钥可以多人共用吗?

不建议。每位成员应使用独立密钥,便于撤销与审计。

Q3:训练结束后要做什么?

备份必要产物,删除临时凭据和敏感缓存,再按平台流程关停实例。

Q4:正式API只开放一个端口够吗?

端口最小化只是基础,还要配置鉴权、TLS、限流、日志和异常告警。

相关推荐
野生码农AI实战6 小时前
Kimi Code 5分钟烧穿699套餐5小时限额:798个文件、745次失败,烧出四条熔断纪律
人工智能·ai编程
寻道码路6 小时前
大模型工程化实战(十七):金融级 AI 落地——决策可追溯/可复现/可追责/不可抵赖这四件事怎么做
人工智能·大模型·ai工程化·ai治理·ai合规·金融ai落地·决策审计链
IanSkunk6 小时前
从T/SMA 0090—2026到视光中心落地:标准化体系模块清单怎么拆
人工智能
万物智能信息科技6 小时前
血氧心跳传感器MAX30100芯片驱动开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
人工智能·驱动开发·华为·开源·harmonyos·鸿蒙
Alice-YUE6 小时前
从「能用」到「可控」:Prompt 工程与日常写 Prompt 的本质区别
人工智能·大模型·llm·prompt·prompt工程·提示词·ai应用
qq_365320606 小时前
AI使用心得7
人工智能
Skrrapper6 小时前
AI项目实战日记ep2:把 GitHub Issue 的第一轮脏活交给 AI:做一个 Issue 分诊助手
人工智能·github·issue
Eric.466 小时前
2025 深度实战:本地部署 AI 漫剧与 AI 视频全量产方案,彻底解决云端画质抖动、角色漂移、成本超标
大数据·人工智能·音视频·comfyui·ai漫剧
东坡肘子6 小时前
Swift Server,又多了一个 Google -- 肘子的 Swift 周报 #156
人工智能·swiftui·swift
枫叶丹46 小时前
AI Agent 说完成了,怎样验证任务真的完成
人工智能·chatgpt·开源·agent·codex