SSH 远程连接
您可以通过 SSH 安全地从本地计算机登录到智算云平台的开发机,并在开发机上执行命令。
前置条件
- 开发机已开机,并已进入运行中状态。
关于 SSH 客户端
请确保本地计算机已安装 SSH 客户端,确保 ssh
命令可用。
- Mac 用户可使用自带终端(Terminal)。
- Windows 用户可在 CMD 或 PowerShell 中使用 Windows 自带的 OpenSSH 客户端。如果无法使用 CMD 或 PowerShell,可下载安装 Git for Windows ,通过 Git Bash 使用 SSH。
- 其他支持 SSH 客户端的工具,例如 VS Code。详见教程 VS Code 远程开发:为开发机、AICoder 提供本地般的开发体验。
密码认证 vs 密钥认证
开发机支持 SSH 基于密码的认证,也支持基于公钥的身份验证。
以下提供两种方式的对比:
特性 | 密码认证 | 密钥认证 |
---|---|---|
方便性 | 简单,只需记住密码 | 需要生成和管理密钥对 |
配置复杂度 | 简单,开发机启用「SSH 登录密码」 | 复杂,需要生成密钥对并配置 |
认证速度 | 较慢,每次登录都需要输入密码 | 快速,无需输入密码 |
密钥管理 | 无需管理密钥 | 需要妥善管理私钥,防止泄露 |
自动化 | 需要输入密码 | 可以实现无密码自动登录 |
NOTE
- 以上对比不涉及安全性。如使用密码认证,请确保密码不要泄漏。
- 智算云平台提供 SSH 公钥管理功能。您可以将 SSH 公钥提交给平台,平台将在您创建的开发机中自动注入您的 SSH 公钥。
SSH 远程登录
选择 SSH 基于密码的认证,或基于 SSH 公私钥对的验证。从开发机详情页面可一键复制 SSH 登录命令。
启用 SSH 密码认证
您需要在创建开发机时,启用 SSH 登录密码。启用之后,平台会生成初始 SSH 密码,无需额外操作。与开发机建立 SSH 连接时,您需要提供该密码。
NOTE
- SSH 登录密码可在开发机详情页获取。
- 如果未在创建开发机未启用任何认证方式,可通过「改配」功能启用 SSH 密码登录,也可通过 Web Terminal 登录开发机添加公钥。如何改配?
使用 SSH 密钥认证
只要开发机 ~/.ssh/authorized_keys
文件中包含您的 SSH 公钥,即可通过密钥认证直接登录。
建议您使用智算云平台的 SSH 公钥管理功能。在您的开发机每次启动时,平台会检查开发机 ~/.ssh/authorized_keys
文件,并自动注入您已添加的 SSH 公钥。如未生效,请考虑重启实例。
如果不使用智算云平台的 SSH 公钥管理功能,也可在开发机中手动修改 ~/.ssh/authorized_keys
文件,添加公钥,该修改即刻生效。手动修改将持久化保存在开发机系统盘。如果改配开发机,且选择清空系统盘,手动修改将丢失。
TIP
- 如果您不熟悉 SSH 公私钥的生成与配置方式,仅使用 SSH 密码认证即可。
- 如果您希望学习 SSH 公私钥的生成与配置细节,可参考教程添加 SSH 公钥指南。
一键复制 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 密码
开发机的创建者可自助重置密码。进入开发机详情页后,可点击修改密码,输入符合规则的新密码并提交。新密码立即生效,无需重启开发机。
其他 SSH 功能
- 文件传输: 通过
sftp
或scp
安全地传输文件。 - 端口转发: 通过 SSH 端口转发访问开发机内 HTTP 服务
使用 root
账号
开发机默认使用 root
帐号登录,默认登录账号与登录云平台账号保持一致。
WARNING
部分旧版开发机实例仍默认使用非 root 普通用户名登录,重启后将自动更新。
常见问题
如何找到 SSH 登录密码?
只要在创建开发机启用了 SSH 登录密码,平台会自动生成初始密码。您可以进入开发机详情页复制 SSH 登录密码,或修改密码。
您无法查看他人创建的开发机的密码。
部分旧版开发机可能未启用 SSH 基于密码的认证方式,可使用「改配」功能启用该配置。但开发机内如果已添加 SSH 公钥,则优先基于密钥的认证。
WARNING
开发机 SSH 登录密码应在开发机详情页获取,不是 智算云平台的登录密码,请勿混淆。
如何添加 SSH 公钥?
如果在创建开发机时未上传 SSH 公钥,可参考以下方法:
- 通过开发机「改配」功能添加 SSH 公钥。注意开发机改配后会重启。
- 直接在开发机内添加 SSH 公钥。如需帮助,可参考教程 添加 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 密钥对,并使用默认私钥文件名。bashid_rsa id_ecdsa id_ecdsa_sk id_ed25519 id_ed25519_sk id_dsa
- MacOS/Linux 私钥文件默认路径为:
检查开发机内 SSH 的授权公钥文件(
authorized_keys
),确保开发机中已成功添加您的 SSH 公钥。输出开发机中授权公钥文件内容:bashcat ~/.ssh/authorized_keys
cat
命令的输出结果中应包含您本地的 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 地址。
获取详细日志后,通过大模型服务分析日志,获取可能的错误原因。
TIP
如果您需要帮助,请联系无问芯穹技术支持。