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

相关推荐
阿米亚波1 分钟前
【C/C++包管理器】vcpkg(by microsoft)
c语言·c++·git·vscode·microsoft·github·vcpkg
进击切图仔2 小时前
在 windows 和 ubuntu 中配置 host 文件
linux·windows·ubuntu
打工的小王3 小时前
github教程之多人协作
github
笨笨狗吞噬者3 小时前
IRIS: shell 中的智能实时输入提示工具
github·shell
云边有个稻草人5 小时前
Ubuntu部署Prometheus与Alertmanager:服务接入和远程监控
数据库·ubuntu·prometheus
fthux5 小时前
MCP协议开发实战:从零搭建AI Agent工具链
前端·人工智能·ai·开源·github
@CLoudbays_Martin115 小时前
Linux 服务器如何查看是否被植入后门?
linux·服务器·网络·安全·github·ssl
一次旅行5 小时前
Ollama本地私有化大模型完整工程实战
人工智能·机器学习·github
华科大胡子6 小时前
GitHub Copilot 能换成本地模型吗?—— 本地化替代方案深度解析
人工智能·github·copilot
zho_uzhou6 小时前
ubuntu服务端运行vue网页步骤
linux·服务器·vue.js·ubuntu