SSH 远程连接
您可以通过 SSH 安全地从本地计算机登录到智算云平台的开发机实例,并在开发机实例上执行命令。
前置条件
- 开发机实例已开机,并已进入运行中状态。
SSH 客户端
请确保本地计算机已安装 SSH 客户端,确保 ssh 命令可用。
- Mac 用户可使用自带终端(Terminal)。
- Windows 用户可在 CMD 或 PowerShell 中使用 Windows 自带的 OpenSSH 客户端。如果无法使用 CMD 或 PowerShell,可下载安装 Git for Windows ,通过 Git Bash 使用 SSH。
- 其他支持 SSH 客户端的工具,例如 VS Code。
SSH 服务端
如果开发机实例使用自定义镜像(非平台预置镜像),有可能缺失 openssh-server 组件导致 SSH 相关功能异常。常见报错:
"您的镜像中缺少 openssh-server,您正在连接到一个功能受限的 SSH 服务器,无法用作端口转发/scp 文件传输等用途,仅可用于 SSH 命令行和 sftp 文件传输"
遇到以上报错,建议您如下处理:
- 推荐方案:遵循镜像基础组件要求完善镜像,使用新镜像重启开发机实例。
- 临时处理:安装
openssh-server等缺失组件,随后重启开发机实例。
密码认证 vs 密钥认证
开发机实例支持 SSH 基于密码的认证,也支持基于公钥的身份验证。
以下提供两种方式的对比:
| 特性 | 密码认证 | 密钥认证 |
|---|---|---|
| 方便性 | 简单,只需记住密码 | 需要生成和管理密钥对 |
| 配置复杂度 | 简单,开发机实例启用「SSH 登录密码」 | 复杂,需要生成 SSH 密钥对并配置 |
| 认证速度 | 较慢,每次登录都需要输入密码 | 快速,无需输入密码 |
| 密钥管理 | 无需管理密钥 | 需要妥善管理私钥,防止泄露 |
| 自动化 | 需要输入密码 | 可以实现无密码自动登录 |
信息
- 以上对比不涉及安全性。如使用密码认证,请确保密码不要泄漏。
- 智算云平台提供 SSH 公钥管理功能。您可以将 SSH 公钥提交给平台,平台将在您创建的开发机实例中自动注入您的 SSH 公钥。
SSH 远程登录
选择 SSH 基于密码的认证,或基于 SSH 公私钥对的验证。从开发机实例详情页面可一键复制 SSH 登录命令。
启用 SSH 密码认证
如果您习惯通过密码认证(Password-based Authentication)远程登录开发机实例,请在创建开发机实例时,启用 SSH 登录密码。启用之后,由平台自动生成初始 SSH 密码(首次自动生成,后续修改时可手动设置)。与开发机实例建立 SSH 连接时,您需要提供该密码。
信息
- SSH 登录密码可在开发机实例详情页获取。
- 如果未在创建开发机实例时启用 SSH 登录密码,可通过「改配」功能启用 SSH 密码登录。如何改配?
- 虽然支持基于密码的认证,但仍建议为开发机实例设置基于 SSH 密钥的认证。
使用 SSH 密钥认证
使用 密钥登录(Key-based Authentication) 取代密码登录,可以让您的远程连接更安全、更方便。它通过一对公钥和私钥进行身份验证,不需要每次输入密码,也能有效防止密码被猜测或泄露。只要妥善保管好您的私钥,就能轻松又安全地连接开发机实例,是目前最推荐的 SSH 登录方式。
开发机实例的 ~/.ssh/authorized_keys 文件决定了哪些公钥可以用来登录服务器。只要某个公钥被添加到这个文件中,对应的私钥就能安全地访问服务器,无需输入密码。您可以通过添加或删除公钥的方式,灵活地管理哪些设备或用户拥有登录权限。
推荐使用平台的 SSH 公钥管理功能统一管理 ~/.ssh/authorized_keys 文件。您只需将 SSH 公钥提交到平台,平台会在您的任何开发机实例启动时检查 ~/.ssh/authorized_keys 文件,并自动注入 SSH 公钥。如未生效,请考虑重启实例。

如果在开发机实例中手动修改 ~/.ssh/authorized_keys 文件,增删公钥的修改即刻生效。但手动修改仅持久化保存在开发机实例系统盘,如果改配开发机实例,且选择清空系统盘,手动修改将丢失。
一键复制 SSH 命令
进入开发机实例详情页面,可一键复制 SSH 地址。如已启用 SSH 登录密码,可同时复制密码。

例如,云平台用户 Jane Doe 复制的 SSH 地址为:
ssh -p 44851 root@111.51.90.14-p 44851: 端口号。开发机实例 SSH 服务使用非默认端口号。root:默认 SSH 登录用户名(部分旧版实例展示为非 root 普通用户名,请重启)。111.51.90.14:开发机实例 SSH 服务 IP。
如果开发机实例已添加 SSH 公钥,将直接登录。如果使用密码认证,输入正确的密码后将成功登录。密码错误 3 次后,10 分钟内无法再次使用 SSH 密码验证。
信息
部分可用区的开发机实例存在网络限制,无法访问公网。如发现无法从公网连接开发机实例,请检查 SSH IP 是否为内网 IP。
重置 SSH 密码
开发机实例的创建者可自助重置密码。进入开发机实例详情页后,可点击修改密码,输入符合规则的新密码并提交。新密码立即生效,无需重启开发机实例。
其他 SSH 功能
- 文件传输: 通过
sftp或scp安全地传输文件。
使用 root 账号
开发机实例默认使用 root 帐号登录,默认登录账号与登录云平台账号保持一致。
警告
部分旧版开发机实例仍默认使用非 root 普通用户名登录,重启后将自动更新。
SSH 登录的环境变量
在实例使用 NGC Pytorch / Nvidia CUDA 等容器镜像时,通过 SSH 登录开发机实例看到的环境变量(尤其是 PATH)可能与 Web Terminal 不一致。通过云平台网页终端(Web Terminal)进入容器时,Python 环境、CUDA 工具链和各项依赖均开箱即用;但通过 SSH(或 VS Code Remote-SSH)连接时,系统却提示找不到 nvcc、torch 甚至 conda 命令。
为什么会不一致
Web Terminal 与 SSH 都是进入同一开发机实例的方式,但它们遵循不同 Shell 初始化链路:
- Web Terminal 通常以容器运行时方式启动 Shell(类似
docker exec),继承镜像 Dockerfile 中定义的全部ENV变量(如PATH=/usr/local/cuda/bin:$PATH),直接读取内存中的容器配置。 - SSH 登录 按标准 Linux 登录流程构建登录环境(login shell),环境变量来自系统与用户的登录初始化脚本(加载
/etc/environment//etc/profile/~/.profile等文件)。
因此,在一些镜像中,Web Terminal 与 SSH 会话看到的 PATH、python、conda、CUDA 工具链可见性可能不同。这是容器化环境中常见的行为。为获得一致、可预测的开发体验,建议按本节提供的方式统一配置登录环境。
信息
并非所有平台预置镜像均包含上述工具链。绝大部分镜像已预置 Miniconda。CUDA、NVIDIA 工具取决于您是否选用了 CUDA 镜像或 NGC 镜像。
检查 SSH 会话的 PATH
在 SSH 登录后执行:
echo "$0"
echo "$PATH" | tr ':' '\n'
command -v nvcc || echo "nvcc not found"
command -v conda || echo "conda not found"
command -v python || echo "python not found"
command -v python3|| echo "python3 not found"如果输出中没有 /usr/local/cuda/bin、/usr/local/nvidia/bin、/usr/local/miniconda3/bin,说明 SSH 登录环境未加载平台工具链路径。
持久化配置方案
平台会持久化开发机实例系统盘,因此 /root/.profile 和 /etc/profile 是可选且可持久化的修复点。/etc/profile.d/ 是更系统化的修复点。下面给出两种持久化修复方案,任选其一即可。
方案 A 在 /root/.profile 文件中补齐 PATH
将以下内容追加到 /root/.profile 末尾,可保证 root 用户 SSH 登录后可正常使用 nvcc 等工具:
# Platform PATH fix (SSH login)
path_prepend () { case ":$PATH:" in *":$1:"*) ;; *) PATH="$1:$PATH";; esac; }
path_prepend /usr/local/miniconda3/bin
path_prepend /usr/local/nvidia/bin
path_prepend /usr/local/cuda/bin
export PATH
# Optional: make `conda` command available (does NOT auto-activate base)
if [ -f /usr/local/miniconda3/etc/profile.d/conda.sh ]; then
. /usr/local/miniconda3/etc/profile.d/conda.sh
fi退出并重新 SSH 登录后验证:
command -v nvcc && nvcc -V
command -v python && python -V
command -v conda信息
如果存在 /root/.bash_profile,bash 会优先读取它而不是 /root/.profile。建议确保 /root/.bash_profile 包含:
[ -f ~/.profile ] && . ~/.profile/etc/profile / ~/.profile 主要影响 login shell。如果您需要 ssh host "nvcc -V" 这类非交互远程命令也稳定可用,建议通过 login shell 执行,例如:
ssh <host> 'bash -lc "nvcc -V && python -V"'方案 B 通过 /etc/profile.d/ 注入平台工具链 PATH
如果希望 SSH 登录时稳定获得一致的 PATH;后续维护更清晰;不依赖用户 dotfile 结构,可使用本方案。
执行以下命令,创建 profile 脚本(只需执行一次):
cat > /etc/profile.d/10-platform-path.sh <<'EOF'
# Platform: keep SSH login PATH consistent with web terminal
path_prepend () { case ":$PATH:" in *":$1:"*) ;; *) PATH="$1:$PATH";; esac; }
path_prepend /usr/local/miniconda3/bin
path_prepend /usr/local/nvidia/bin
path_prepend /usr/local/cuda/bin
export PATH
# Optional: make `conda` command available (does NOT auto-activate base)
if [ -f /usr/local/miniconda3/etc/profile.d/conda.sh ]; then
. /usr/local/miniconda3/etc/profile.d/conda.sh
fi
EOF
chmod 0644 /etc/profile.d/10-platform-path.sh退出并重新 SSH 登录后验证:
command -v nvcc && nvcc -V
command -v python && python -V
command -v conda临时修复(仅当前 SSH 会话)
如果您只需要在当前 SSH 会话里临时使用工具链:
export PATH="/usr/local/miniconda3/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:$PATH"
[ -f /usr/local/miniconda3/etc/profile.d/conda.sh ] && . /usr/local/miniconda3/etc/profile.d/conda.sh信息
临时修复会在重连后失效。
常见问题
如何找到 SSH 登录密码?
只要在创建开发机实例启用了 SSH 登录密码,平台会自动生成初始密码。您可以进入开发机实例详情页复制 SSH 登录密码,或修改密码。
您无法查看他人创建的开发机实例的密码。
部分旧版开发机实例可能未启用 SSH 基于密码的认证方式,可使用「改配」功能启用该配置。但开发机实例内如果已添加 SSH 公钥,则优先基于密钥的认证。
警告
开发机实例 SSH 登录密码应在开发机实例详情页获取,不是 智算云平台的登录密码,请勿混淆。
如何添加 SSH 公钥?
如果在创建开发机实例时未上传 SSH 公钥,可参考以下方法:
- 通过开发机实例「改配」功能添加 SSH 公钥。注意开发机实例改配后会重启。
- 直接在开发机实例内添加 SSH 公钥。
开发机实例无法访问公网,如何安装 VSCode 或 Cursor?
如果开发机实例无法访问公网(例如部分可用区限制连接公网),有可能导致 VSCode 或 Cursor 无法顺利下载 Remote SSH 远程连接所需的 Server 端组件。
您可以手动安装 VSCoder / Cursor 的 Server 端组件。详见 VSCode 远程开发。
无法与开发机实例建立 SSH 连接
如果无法与开发机实例建立 SSH 连接,请通过以下步骤检查问题。
检查开发机实例状态、IP、端口
- 确认开发机实例已正常运行,处在「运行中」状态。
- 确认开发机实例 IP 无误,请进入开发机实例详情页确认 IP。
- 开发机实例 SSH 服务使用非标准端口,请进入开发机实例详情页确认端口号,确认您已在 SSH 命令或其他客户端工具中正确传入或配置该端口号。
检查开发机实例镜像
确认开发机实例镜像已包含平台要求的镜像基础组件。详见镜像基础组件要求。
检查 SSH 配置
检查本地计算机的 SSH 私钥文件。是否在创建 SSH 密钥对时修改了默认的私钥文件名?
- MacOS/Linux 私钥文件默认路径为:
~/.ssh/ - Windows:
C:\Users\<用户名>\.ssh\
SSH 客户端一般在默认路径下按顺序寻找以下私钥文件。如果使用非默认私钥文件名,例如
id_rsa-mykey,可使用 SSH 的-i选项指定私钥文件,或在修改本地 SSH 配置文件。也可以重新生成 SSH 密钥对,并使用默认私钥文件名。language-bashid_rsa id_ecdsa id_ecdsa_sk id_ed25519 id_ed25519_sk id_dsa- MacOS/Linux 私钥文件默认路径为:
检查开发机实例内 SSH 的授权公钥文件(
authorized_keys),确保开发机实例中已成功添加您的 SSH 公钥。输出开发机实例中授权公钥文件内容:language-bashcat ~/.ssh/authorized_keyscat命令的输出结果中应包含您本地的 SSH 公钥(.pub后缀)文件内容。
检查本地网络环境
部分网络环境由于安全考虑,会限制 SSH 远程连接外网的服务器,请检查本地网络环境是否允许 SSH 连接。
使用 nc 命令,其中 219.135.228.245 替换为您的开发机实例的 SSH IP 地址,41586 替换为开发机实例的 SSH 端口号。
nc -vz 219.135.228.245 41586
Connection to 219.135.228.245 port 41586 [tcp/*] succeeded!如果 nc 命令无法建立连接,请联系您的网络管理员。
自助排查问题
无法 SSH 远程连接开发机实例大部分原因为配置或网络问题,您可以通过命令行界面获取详细日志,自助排查。
您可以先获取 SSH 命令的错误输出。命令格式:
ssh -vv -p port username@host_ip执行命令时,请将其中 port 应替换为您开发机实例的 SSH 端口号,username 替换为您登录开发机实例的用户名,host_ip 替换为开发机实例的 SSH IP 地址。
获取详细日志后,通过大模型服务分析日志,获取可能的错误原因。
提示
如果您需要帮助,请联系商务或售后服务。