​Hi,大家好,我是半亩花海。本文主要介绍了将 AutoDL 云服务器通过 SSH 密钥对方式接入 Codex/本机终端的完整流程。核心步骤包括:1) 生成本机 SSH 密钥对;2) 首次用密码登录服务器并写入公钥;3) 配置本地 SSH 别名;4) 使用 ssh autodl-721 快捷连接。该方法比保存密码更安全,支持 Codex直接调用 SSH 管理远程服务器。适用于 Windows 系统环境,实现一键式免密登录与文件传输。

目录

一、准备 AutoDL 原始连接信息

二、配置思路

三、具体操作步骤

步骤 1:在本机生成 SSH 密钥

步骤 2:首次用 AutoDL 原始命令登录服务器

步骤 3:把本机公钥写入服务器 authorized_keys

步骤 4:在本机 SSH config 中配置别名

步骤 5:验证连接

四、平常在 Codex 里怎么用

五、常见问题

1. 为什么不把密码保存到 Codex?

2. 连接提示 Permission denied 怎么办?

3. AutoDL 重开实例后还有效吗?

4. 怎么复制文件到服务器?

六、本文可直接替换的模板


AutoDL云服务器接入Codex/本机终端的SSH流程

关于如何将AutoDL 云服务器连接到 Codex / 本机终端,你可以选择直接告诉 Codex 你需要做什么,也可以选择参考以下详细教程

直接告诉 Codex:

现在我想将https://www.autodl.com/console/instance/list我的autodl云服务器(我需要连接重庆A区 / 721机)连接到我的codex上。登录指令:ssh -p 23940 root@connect.cqa1.seetacloud.com,密码: <我的密码>。


一、准备 AutoDL 原始连接信息

在 AutoDL 控制台实例列表中找到目标实例,记录 SSH 登录信息。以本文实例为例:

  • 地区/机器:重庆 A 区 / 721 机
  • SSH 地址:connect.cqa1.seetacloud.com
  • SSH 端口:23940
  • 用户名:root
  • 密码:<我的密码>

这些信息会组合成 AutoDL 提供的原始 SSH 登录命令(命令如下,含义是使用 root 用户,通过 23940 端口,连接 connect.cqa1.seetacloud.com 这台 AutoDL 服务器)。这个命令只在第一次配置公钥时使用,可以在 Codex 的终端 里输入,也可以在 Windows 的 PowerShell / CMD / Windows Terminal 里输入

ssh -p 23940 root@connect.cqa1.seetacloud.com

注意:本文后面配置好别名后,日常使用不需要再输入这条长命令,只需要输入 ssh autodl-721

二、配置思路

核心思路不是把密码保存到 Codex,而是做 SSH 公钥免密登录

  1. 本机生成一对 SSH 密钥:私钥保存在本机,公钥可以放到服务器。
  2. 首次用密码登录服务器,把公钥写入 /root/.ssh/authorized_keys。
  3. 在本机 C:\Users\用户名\.ssh\config 中配置 Host 别名。
  4. 之后 Codex 和本机终端都可以用 ssh autodl-721 连接。

三、具体操作步骤

步骤 1:在本机生成 SSH 密钥

在 Windows PowerShell 中执行。这里给 AutoDL 单独创建一个 key,便于管理:

ssh-keygen -t rsa -b 4096 -f $env:USERPROFILE\.ssh\id_rsa_autodl_721 -C "codex-autodl-721"

一路回车即可。如果提示输入 passphrase,可直接留空,方便 Codex 自动连接。

步骤 2:首次用 AutoDL 原始命令登录服务器

这一步只用于初始化公钥,命令如下:

ssh -p 23940 root@connect.cqa1.seetacloud.com

首次连接会提示是否信任主机,输入 yes。随后输入 AutoDL 控制台给出的密码。

步骤 3:把本机公钥写入服务器 authorized_keys

(1)在本机查看公钥内容:

Get-Content $env:USERPROFILE\.ssh\id_rsa_autodl_721.pub

(2)复制输出的整行公钥。然后在远程服务器中执行:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

(3)把刚才复制的公钥粘贴进去,保存退出,然后设置权限:

chmod 600 ~/.ssh/authorized_keys

说明:我这次实际操作时是用 Python 的 paramiko 自动完成这一步,本质上就是把公钥追加到了 /root/.ssh/authorized_keys。

步骤 4:在本机 SSH config 中配置别名

(1)编辑本机文件:

C:\Users\你的用户名\.ssh\config

(2)加入以下内容:

Host autodl-721
    HostName connect.cqa1.seetacloud.com
    Port 23940
    User root
    IdentityFile C:/Users/你的用户名/.ssh/id_rsa_autodl_721
    IdentitiesOnly yes
    ServerAliveInterval 30
    ServerAliveCountMax 3
    StrictHostKeyChecking accept-new

注意:IdentityFile 建议使用正斜杠 /,Windows OpenSSH 可以识别。

步骤 5:验证连接

回到 Codex 终端本机 PowerShell ,执行最终登录命令:

ssh autodl-721

如果能进入远程服务器,说明配置成功。

本文实例验证结果大致显示为:

  • 远端 hostname:autodl-container-d8dlmpu3b9-bc6bd3d2
  • 远端用户:root
  • 远端目录:/root

四、平常在 Codex 里怎么用

配置完成以后,Codex 和本机终端使用的是同一套 SSH 配置日常,我们只需要记住这一条命令(日常登录命令)。平常登录Autodl服务器的方式如下,终端指令或者口头的命令都可以:

(1)可以直接让 Codex 执行:

ssh autodl-721

这条命令的作用是:通过我们在本机 SSH config 中设置好的别名 autodl-721,直接登录 AutoDL 服务器。

(2)也可以在 Codex 对话里直接说:

帮我登录 autodl-721,查看 /root 目录

Codex 会在本机终端里调用 SSH,远程执行命令并把结果返回。


五、常见问题

1. 为什么不把密码保存到 Codex?

因为密码属于敏感信息,不适合长期保存或公开。SSH 公钥登录更安全:私钥留在本机,服务器只保存公钥。

2. 连接提示 Permission denied 怎么办?

  • 检查公钥是否完整写入 /root/.ssh/authorized_keys。

  • 检查服务器权限:~/.ssh 为 700,authorized_keys 为 600。

  • 检查本机 config 的 IdentityFile 路径是否正确。

3. AutoDL 重开实例后还有效吗?

如果 AutoDL 分配的 SSH 地址或端口变了,需要更新本机 .ssh/config 里的 HostName 和 Port。如果服务器磁盘环境被重置,则需要重新上传公钥。

4. 怎么复制文件到服务器?

scp 本地文件 autodl-721:/root/
scp -r 本地文件夹 autodl-721:/root/

5. 怎么从服务器下载文件?

scp autodl-721:/root/远程文件 ./


六、本文可直接替换的模板

Host autodl-721
    HostName <AutoDL SSH 地址>
    Port <AutoDL SSH 端口>
    User root
    IdentityFile C:/Users/<你的用户名>/.ssh/id_rsa_autodl_721
    IdentitiesOnly yes

总结:配置完成后,连接 AutoDL 不再需要记住长命令,只需要 ssh autodl-721。Codex 也可以通过这个别名直接管理远程服务器、查看文件、运行训练脚本。

更多推荐