Ubuntu 使用 GitHub SSH 克隆时报 Permission denied (publickey) 解决方案

一、问题现象

在 Ubuntu 服务器执行:

git clone git@github.com:账户/project.git

报错:

git@github.com: Permission denied (publickey).

fatal: Could not read from remote repository.


二、问题原因

该错误表示:

👉 当前服务器没有可被 GitHub 识别的 SSH 公钥

GitHub 在使用 SSH 协议时,不使用账号密码,而是通过:

  • 本地私钥(服务器)
  • GitHub 上保存的公钥

进行认证。

只要这两者不匹配,就会出现:

Permission denied (publickey)


三、解决步骤

1. 检查是否已有 SSH key

ls -al ~/.ssh

如果存在:

id_ed25519

id_ed25519.pub

说明已经生成过密钥。


2. 如果没有,生成 SSH key

ssh-keygen -t ed25519 -C "your_email@example.com"

说明:

  • -C 后面的邮箱只是备注(可随意写)
  • 一路回车即可

3. 启动 ssh-agent 并加载私钥

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/id_ed25519


4. 获取公钥内容

cat ~/.ssh/id_ed25519.pub

复制输出的整行内容


5. 添加到 GitHub

登录 GitHub:

路径:

头像 → Settings → SSH and GPG keys → New SSH key

填写:

  • Title:自定义(如 ubuntu-server)
  • Key:粘贴刚才复制的公钥

点击 Add SSH key


6. 测试 SSH 连接

ssh -T git@github.com

成功输出:

Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.


7. 重新克隆仓库

git clone git@github.com:账户名/projects.git


四、常见坑

1. 公钥没有添加到 GitHub

最常见原因


2. 添加错账号

确保登录的是正确的 GitHub 账号


3. 没有加载私钥

ssh-add ~/.ssh/id_ed25519


4. 权限不正确

chmod 700 ~/.ssh

chmod 600 ~/.ssh/id_ed25519

chmod 644 ~/.ssh/id_ed25519.pub


5. 使用了 sudo 导致环境不同

sudo git clone ...

问题:

  • root 用户没有 SSH key
  • 导致认证失败

正确做法:

git clone ...


五、HTTPS 与 SSH 对比

方式 优点 缺点
HTTPS 简单 每次可能需要认证
SSH 一次配置,长期使用 初次配置稍复杂

六、总结

该问题核心:

SSH 公钥未正确配置到 GitHub

解决流程:

生成密钥 → 添加公钥 → 测试连接 → 重新 clone

相关推荐
daemon.qiang17 分钟前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件
m4Rk_2 小时前
【论文阅读】Agent 记忆机制(74):CompassMem——从相似度检索走向事件图上的记忆导航
论文阅读·人工智能·学习·开源·github
wflynn3 小时前
GitHub 日榜趋势速报 | 2026-09-18
开源·github
qetfw5 小时前
Debian SSH 与 SFTP 分离:独立端口、Chroot 隔离与 internal-sftp
debian·ssh
orange....5 小时前
VMware 双网卡配置:宿主机切换网络时 Ubuntu 固定 IP 访问方案
网络·ubuntu·网络安全
粥里有勺糖5 小时前
视野修炼第133期 | Native 回春了?
前端·github·agent
园长的牧歌9 小时前
Ubuntu 打开应用在导航栏没有图标是个齿轮
linux·ubuntu
Mr.朱鹏9 小时前
Git 仓库同时推送到 Gitee 与 GitHub 配置指南
git·gitee·开源·github
All for pursuit.11 小时前
FastAPI+Ollama 部署本地AI大模型对话助手
python·github·aigc·ollama
牢姐与蒯12 小时前
Linux进程间通信(一).进程间通信概念&&环境切换(着重强调vscode)
linux·运维·服务器·ubuntu