Codex 添加 SSH 连接完整流程与问题排查记录简洁版
·
一、本地
你在本地 Windows PowerShell 做这些。
1. 创建 .ssh 文件夹
mkdir "$env:USERPROFILE\.ssh"
如果提示已经存在,没关系。
2. 生成密钥文件
假设你想把密钥命名为 yg-2,执行:
ssh-keygen -t ed25519 -f "$env:USERPROFILE\.ssh\yg-2" -C "codex-ssh"
如果 $env:USERPROFILE 在你的终端里不识别,就直接用绝对路径,例如:
ssh-keygen -t ed25519 -f "C:\Users\<你的Windows用户名>\.ssh\yg-2" -C "codex-ssh"
中间它会问:
Enter passphrase:
Enter same passphrase again:
可以直接按两次回车,不设置密码。
生成成功后,本地会出现两个文件:
C:\Users\<你的Windows用户名>\.ssh\yg-2
C:\Users\<你的Windows用户名>\.ssh\yg-2.pub
含义是:
yg-2 私钥,留在本地,Codex 填这个
yg-2.pub 公钥,复制到服务器
3. 查看本地公钥
在本地 PowerShell 执行:
type "$env:USERPROFILE\.ssh\yg-2.pub"
或者:
type "C:\Users\<你的Windows用户名>\.ssh\yg-2.pub"
它会输出一整行,类似:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIxxxxxxxx codex-ssh
复制这一整行。
注意:不要复制私钥 yg-2 的内容,只复制 yg-2.pub 的内容。
二、服务器
你在远程服务器终端做这些。
服务器里不需要生成私钥,也不需要放 yg-2 文件。
服务器只需要保存你本地的公钥内容。
1. 创建服务器 SSH 授权目录
mkdir -p /root/.ssh
chmod 700 /root/.ssh
2. 添加公钥
你的服务器没有 nano,所以不用 nano。直接用这个方式:
cat >> /root/.ssh/authorized_keys
执行后光标会停住。
这时把你刚才从本地 yg-2.pub 复制的那一整行粘进去,例如:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIxxxxxxxx codex-ssh
粘贴完后按:
Ctrl + D
这表示结束输入并保存。
3. 设置权限
chmod 600 /root/.ssh/authorized_keys
然后检查一下:
cat /root/.ssh/authorized_keys
确认里面有你刚才粘贴的公钥。
三、本地测试 SSH 是否成功
回到本地 PowerShell,执行:
ssh -i "C:\Users\<你的Windows用户名>\.ssh\yg-2" -p <端口> root@<服务器地址>
如果你用的是普通用户,不是 root,就改成:
ssh -i "C:\Users\<你的Windows用户名>\.ssh\yg-2" -p <端口> <用户名>@<服务器地址>
如果这次不需要输入服务器密码就能进去,说明密钥配置成功。
如果还是要求输入密码,说明服务器的 /root/.ssh/authorized_keys 里没有正确添加 yg-2.pub 那一整行,或者你登录的用户不是 root。
四、Codex 里怎么填
Codex 里填本地私钥路径:
显示名称:
随便写,例如 remote-server
主机名:
root@<服务器地址>
SSH 端口:
<端口>
身份验证:
身份文件
身份文件路径:
C:\Users\<你的Windows用户名>\.ssh\yg-2
不要填:
C:\Users\<你的Windows用户名>\.ssh\yg-2.pub
也不要把完整命令:
ssh -i ... -p ... root@...
整条填进主机名。主机名只填:
root@<服务器地址>
端口单独填到端口框里。
五、最容易出错的点
你可以这样记:
本地:
生成 yg-2 和 yg-2.pub
Codex 填 yg-2
服务器:
只保存 yg-2.pub 的内容
不要保存 yg-2
对应关系是:
本地私钥:C:\Users\<你的Windows用户名>\.ssh\yg-2
服务器公钥:/root/.ssh/authorized_keys 里的一行 ssh-ed25519 ...
只要这两个是一对,SSH 和 Codex 才能免密码登录。
更多推荐




所有评论(0)