报错解决:git clone git@github.com: Permission denied (publickey)权限拒绝问题

简介: 本文详解Git克隆GitHub仓库时出现“Permission denied (publickey)”错误的解决方法。问题源于SSH身份验证失败,常见于未配置SSH密钥或未添加公钥至GitHub。提供两种方案:一是临时使用HTTPS协议克隆,快速便捷;二是长期配置SSH密钥对,一劳永逸。涵盖密钥生成、SSH Agent启动、公钥添加及连接验证全流程,助开发者高效解决问题,提升开发效率。

一、前言

最近在部署detectron2(Facebook开源的目标检测框架)时,执行克隆命令:

git clone git@github.com:facebookresearch/detectron2.git

终端直接抛出如下错误:

Cloning into 'detectron2'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

1.png

起初以为是仓库权限问题,但detectron2是公开仓库,任何人都可克隆,排查后发现核心是SSH身份验证环节出了问题。本文将完整还原问题分析和解决过程,帮助遇到同类报错的开发者少走弯路。

二、问题分析

要理解这个报错,首先要明白Git通过SSH协议访问GitHub的底层逻辑:

  1. SSH验证原理:GitHub通过SSH密钥对(公钥+私钥)验证用户身份——本地生成密钥对后,将公钥配置到GitHub账户,克隆/推送代码时,GitHub服务器会校验本地私钥与账户公钥是否匹配,匹配成功才允许操作。
  2. 报错本质Permission denied (publickey) 意味着GitHub服务器未在你的账户中找到匹配的SSH公钥,无法确认你的身份,因此拒绝了SSH连接请求。
  3. 常见诱因
    • 本地未生成SSH密钥对;
    • 生成了密钥对但未将公钥添加到GitHub账户;
    • SSH agent未启动,或未将私钥添加到agent中;
    • 密钥文件路径/权限配置错误(如私钥权限过宽)。

三、解决方案

针对该问题,提供两种解决方案:「快速临时方案」(改用HTTPS克隆)和「长期根治方案」(配置SSH密钥),可根据实际需求选择。

方案1:快速解决——改用HTTPS协议克隆(无需配置SSH)

这是最便捷的临时方案,跳过SSH验证,直接使用HTTPS协议克隆仓库,适合临时克隆公开仓库的场景。

执行如下命令即可:

git clone https://github.com/facebookresearch/detectron2.git

2.png

注意事项:

  • 如果克隆时提示输入GitHub账号密码:
    • 账号填写你的GitHub用户名;
    • 若开启了GitHub两步验证(2FA),密码不能填登录密码,需使用「个人访问令牌(PAT)」代替。
  • 生成PAT的步骤:GitHub首页 → 右上角头像 → Settings → Developer settings → Personal access tokens → Generate new token → 勾选repo权限 → 生成后复制令牌(仅显示一次,需妥善保存)。

方案2:长期根治——配置SSH密钥(推荐)

如果需要长期使用SSH协议操作GitHub(如频繁推送代码、克隆私有仓库),建议配置SSH密钥,一劳永逸解决身份验证问题,步骤如下:

步骤1:检查本地是否已有SSH密钥

首先查看本地.ssh目录下是否有现成的密钥文件(如id_rsa.pub/id_ed25519.pub.pub后缀为公钥,无后缀为私钥):

ls -al ~/.ssh

如果输出中有id_ed25519.pubid_rsa.pub,说明已有密钥对,可跳过步骤2;若为空,需生成新密钥。
3.png

步骤2:生成新的SSH密钥(无密钥时执行)

使用ssh-keygen生成密钥对(推荐使用更安全的ed25519算法),替换为你的GitHub注册邮箱:

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

执行后按提示操作:

  • 按回车默认保存路径(~/.ssh/id_ed25519),无需修改;
  • 可选设置密钥密码(按回车跳过即可,设置后每次使用SSH需输入密码,更安全)。
    4.png

步骤3:启动SSH Agent并添加私钥

SSH Agent用于管理私钥,避免每次操作都输入密钥密码,执行如下命令:

# 启动ssh-agent
eval "$(ssh-agent -s)"
# 添加私钥(若为rsa密钥,替换为id_rsa)
ssh-add ~/.ssh/id_ed25519

5.png

步骤4:复制SSH公钥内容

执行命令复制公钥文本(后续需粘贴到GitHub):

cat ~/.ssh/id_ed25519.pub

复制输出的全部内容(以ssh-ed25519开头,你的邮箱结尾的完整字符串)。

步骤5:将公钥添加到GitHub账户

  1. 打开GitHub官网,登录后点击右上角头像 → Settings(设置);
    6.png

  2. 在左侧菜单找到SSH and GPG keys → 点击New SSH key
    7.png

  3. Title栏填写标识(如“工作机-2026”),Key栏粘贴复制的公钥内容;
    8.png

  4. 点击Add SSH key完成添加(若开启2FA,需验证身份)。

9.png

步骤6:验证SSH连接

执行如下命令验证配置是否成功:

ssh -T git@github.com

若终端输出Hi [你的GitHub用户名]! You've successfully authenticated, but GitHub does not provide shell access.,说明SSH配置成功。

10.png

步骤7:重新克隆仓库

此时再执行原SSH克隆命令,即可正常克隆:

git clone git@github.com:facebookresearch/detectron2.git

11.png

四、总结

  1. 报错核心原因:本地SSH公钥未配置到GitHub账户,导致GitHub无法验证身份,拒绝SSH连接。
  2. 方案选择建议:临时克隆公开仓库选HTTPS方式(快速),长期开发/操作私有仓库选SSH配置(便捷、安全)。
  3. 额外注意点:配置SSH后若仍报错,可检查密钥文件权限(私钥需设为600)、SSH Agent是否正常运行,或更换RSA算法重新生成密钥。

希望本文能帮助大家快速解决git@github.com: Permission denied (publickey)问题,如果你有其他解决思路,欢迎在评论区交流~

相关文章
|
1天前
|
存储 缓存 数据可视化
Supertonic 部署与使用全流程保姆级指南(附已部署镜像)
Supertonic开源工具Python版部署与使用指南 摘要:本文详细介绍了Supertonic(一款语音处理工具)Python版本的完整部署流程,包括服务器环境准备、源码下载、依赖安装、常见报错解决方法等关键步骤。部署成功后,用户只需修改示例脚本中的文本内容,即可生成对应的音频结果文件。文章还提供了已部署镜像的获取方式,帮助用户快速上手。部署过程中需注意模型自动下载、依赖版本冲突等常见问题。通过本指南,用户可以快速完成Supertonic的环境搭建并开始使用其核心功能。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AI 十大论文精讲(七):Switch Routing 如何破解 MoE 的路由、通信与稳定性三大痛点
Switch Transformers通过简化MoE路由机制,实现万亿参数模型的高效训练。其核心创新在于Switch Routing(单专家激活)、选择性精度与三重并行架构,在降低计算成本的同时提升模型规模与稳定性,为大模型稀疏化发展奠定基础。
388 132
AI 十大论文精讲(七):Switch Routing 如何破解 MoE 的路由、通信与稳定性三大痛点
|
28天前
|
编译器 程序员 Linux
实用工具:VS Code 配置 Markdown 编译器全指南
本文介绍如何在VS Code中配置高效Markdown写作环境,通过启用内置预览、安装Markdown All in One与Markdown Preview Enhanced插件,并配置Princexml实现PDF等格式导出,全面提升编辑、预览与输出效率,适合程序员、学生及内容创作者使用。
实用工具:VS Code 配置 Markdown 编译器全指南
|
1月前
|
传感器 机器学习/深度学习 人工智能
具身智能——机械臂全解析:从技术原理到产业生态,解锁智能执行新范式
机械臂作为“智能执行终端”,融合机械、电子、控制与AI技术,已从替代人工迈向价值共创。本文系统解析其结构、控制原理、产业现状与多领域应用,展现国产化崛起与智能化升级的全貌。
|
2月前
|
运维 数据安全/隐私保护 Windows
云端服务器使用指南:如何跨机传输较大文件(通过windows自带工具远程桌面连接 非常方便)
本文介绍了通过远程桌面连接实现跨机传输大文件的方法。首先说明如何启动远程桌面连接(Win+R输入mstsc或搜索打开),强调需输入云服务器公网IP(如47.98.XX.XX格式)。详细图文展示了连接过程,包括输入Administrator账户密码的步骤。文件传输支持两种方式:部分系统可直接拖拽文件到本机,其他系统可通过复制粘贴完成。该方法解决了传统邮箱附件/网盘传输大文件的低效问题,适用于数据库备份、安装包等GB级文件传输场景。
|
2月前
|
数据采集 机器学习/深度学习 人工智能
AI 十大论文精讲(二):GPT-3 论文全景解析——大模型 + 提示词如何解锁 “举一反三” 能力?
摘要 2020年发表的《Language Models are Few-Shot Learners》(GPT-3论文)开创了AI新时代。该论文突破性地证明:当Transformer模型参数规模扩大到1750亿时,仅通过文本交互即可实现任务无关的少样本学习。GPT-3采用"预训练+提示词"的新范式,无需微调就能在翻译、问答等40+任务上展现强大性能。论文系统验证了模型在语言建模、闭卷问答等9类任务中的表现,其中在LAMBADA长文本任务上准确率达86.4%,较此前最优提升18.4%。这一研
529 152
|
14天前
|
存储 文字识别 数据可视化
实用代码工具:Python打造PDF选区OCR / 截图批量处理工具(支持手动/全自动模式)
一款基于Python的PDF区域OCR与截图工具,支持精准框选、文字识别、图片截取及Excel一键导出。内置手动审核与全自动批量处理模式,结合PyMuPDF、easyocr等技术,实现高效、可视化的PDF数据提取,适用于发票、报表等场景,显著提升办公效率。
157 11
|
21天前
|
数据采集 算法 机器人
具身智能:零基础入门睿尔曼机械臂(五)—— 手眼标定核心原理与数学求解
本文系统讲解手眼标定技术,涵盖Eye-in-Hand与Eye-to-Hand两种架构,深入推导AX=XB方程的数学原理与求解方法,结合实际应用场景和操作步骤,为机器人视觉开发者提供从理论到实践的完整指南。
213 9
|
17天前
|
存储 数据采集 算法
具身智能:零基础入门睿尔曼机械臂(六)——手眼标定代码库详解,从原理到实践
本文详解睿尔曼手眼标定代码库,涵盖眼在手上与眼在手外两种模式的实现原理及核心代码解析。内容包括数据采集、位姿处理、相机标定与手眼矩阵求解全流程,结合OpenCV的Tsai算法实现高精度坐标转换,助力机器人视觉精准抓取应用开发。

热门文章

最新文章