Ubuntu生成SSH私钥+连接CSDN GPU服务器(解决Permission denied问题)

本文针对 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. 保存并退出配置文件

按以下步骤操作:

  1. Ctrl + O(大写O),然后回车,保存文件;

  2. 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 服务器(只需替换服务器地址、端口和用户名即可复用),收藏本文,后续连接服务器直接对照操作即可。

相关推荐
张3232 小时前
Ansible文件部署
服务器·ansible
Elivs.Xiang2 小时前
ubuntu20中安装Jenkins
linux·运维·ubuntu·jenkins
说再见再也见不到2 小时前
Ubuntu 将阿里云 OSS 对象存储挂载为本地硬盘(含开机自启)
linux·运维·服务器·ubuntu·阿里云·云计算
坚持就完事了2 小时前
Linux的重定向符
运维·服务器·前端
拄杖忙学轻声码2 小时前
Linux平台 CentOS、Ubuntu、Debian 系统安装 docker compose
ubuntu·docker·centos
小樱花的樱花2 小时前
Linux Shell命令入门
linux·服务器·开发语言
艾莉丝努力练剑2 小时前
【Linux网络】计算机网络入门:从背景到协议,理解网络通信基础
linux·运维·服务器·c++·学习·计算机网络
艾莉丝努力练剑2 小时前
【Linux线程】Linux系统多线程(十):线程安全和重入、死锁相关话题
java·linux·运维·服务器·c++·学习·安全
小娄~~2 小时前
特殊进程-
linux·运维·服务器