本文针对 Ubuntu 系统,全程实操演示:生成 SSH 密钥、配置 SSH 连接(指定端口+X11图形转发)、连接 CSDN GPU 服务器,彻底解决 SSH 连接时 Permission denied (publickey) 报错,步骤清晰可直接复制命令,新手也能快速上手。
一、前置说明(必看)
本文适配场景:
-
本地系统:Ubuntu(任意版本,本文以 Ubuntu 22.04 为例)
-
目标服务器:CSDN GPU 服务器(地址:
gpu-0gek9.ssh.gpu.csdn.net) -
服务器端口:319
-
服务器用户名:root
-
核心需求:密钥免密登录 + X11 图形转发(后续可打开服务器图形界面)
关键提示:SSH 对密钥和配置文件的权限要求极严格,全程按步骤执行,不要随意修改命令。
二、第一步:生成SSH密钥(本地操作)
本地 Ubuntu 终端执行命令,生成私钥和公钥(私钥存本地,公钥传服务器,实现免密登录)。
1. 生成密钥
终端输入以下命令,全程回车,不要输入任何内容(默认生成路径、不设置密码,简化操作):
bash
ssh-keygen
执行完成后,终端会提示密钥生成成功,默认生成路径为:
-
私钥(本地保存,不可泄露):
~/.ssh/id_rsa -
公钥(需上传到服务器):
~/.ssh/id_rsa.pub
2. 验证密钥是否生成成功
执行以下命令,查看 .ssh 目录下的文件:
bash
ls ~/.ssh/
若输出 config id_rsa id_rsa.pub known_hosts,说明密钥生成成功(缺少 id_rsa 和 id_rsa.pub 则重新执行第一步)。
三、第二步:配置SSH连接(本地操作)
配置 SSH 配置文件,实现"一键连接",无需每次输入服务器地址、端口和用户名,同时开启 X11 图形转发。
1. 编辑SSH配置文件
终端输入命令,打开配置文件(使用 nano 编辑器,简单易操作):
bash
nano ~/.ssh/config
2. 写入正确配置(直接复制替换)
清空配置文件原有内容,复制以下内容粘贴(适配 CSDN GPU 服务器,无需修改,直接用):
Host csdn-gpu
HostName gpu-0gek9.ssh.gpu.csdn.net
User root
Port 319
IdentityFile ~/.ssh/id_rsa
ForwardX11 yes
ForwardX11Trusted yes
3. 保存并退出配置文件
按以下步骤操作:
-
按
Ctrl + O(大写O),然后回车,保存文件; -
按
Ctrl + X,退出 nano 编辑器。
4. 修复配置和密钥权限(关键!解决Permission denied)
SSH 要求 .ssh 目录、私钥、配置文件的权限必须严格,否则会直接拒绝连接,执行以下3条命令,一键修复:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/config
三、第三步:上传公钥到CSDN GPU服务器
将本地生成的公钥(id_rsa.pub)上传到服务器,实现免密登录,这一步需要输入一次服务器密码(后续无需再输)。
bash
ssh-copy-id -p 319 root@gpu-0gek9.ssh.gpu.csdn.net
执行命令后,终端会提示 Password:,输入你的 CSDN GPU 服务器 root 密码,回车即可(密码输入时不显示,正常输入即可)。
提示 Number of key(s) added: 1,说明公钥上传成功。
四、第四步:一键连接服务器
所有配置完成后,无需输入复杂命令,终端直接输入以下命令,即可一键连接 CSDN GPU 服务器:
ssh csdn-gpu
若终端提示 root@gpu-0gek9:~#,说明连接成功!且后续连接无需再输密码。
五、常见问题排查(避坑必看)
1. 报错:Permission denied (publickey)
大概率是以下2个原因,按顺序排查:
-
原因1:密钥权限错误 → 重新执行第二步第4点的3条权限修复命令;
-
原因2:公钥未上传成功 → 重新执行第三步的
ssh-copy-id命令,确保输入正确密码。
2. 报错:No such file or directory(id_rsa)
原因:未生成密钥 → 重新执行第一步的 ssh-keygen 命令,确保全程回车。
3. X11 图形转发无法使用
确认配置文件中已添加以下两行(本文配置已包含),无需额外操作:
ForwardX11 yes
ForwardX11Trusted yes
测试方法:连接服务器后,执行 xclock,若弹出时钟窗口,说明 X11 转发正常。
六、总结
全程核心步骤:生成密钥 → 配置 SSH → 修复权限 → 上传公钥 → 一键连接,所有命令均可直接复制,解决了新手最常遇到的 Permission denied (publickey) 报错,同时配置了 X11 图形转发,满足后续图形界面操作需求。
适用于所有 CSDN GPU 服务器(只需替换服务器地址、端口和用户名即可复用),收藏本文,后续连接服务器直接对照操作即可。