Git错误记录 — git@github.com: Permission denied (publickey)

2023-10-24 19:31

本文主要是介绍Git错误记录 — git@github.com: Permission denied (publickey),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、记录 1

  1. 描述信息:

    使用命令ssh -T git@github.com测试公钥是否添加成功时,报错;

    #提示信息(github)
    git@github.com: Permission denied (publickey)
    #提示信息(gitee)
    git@gitee.com: Permission denied (publickey)
    
  2. 错误场景:

    Win10环境下,为githubgitee配置SSH,实现免密登录

    配置步骤如下:

    • git bash中输入命令— ssh-keygen -t rsa -C "XXX@email.com",回车
    • 这里因为我是嫌之前配置的名字是默认的,没有标识度,所以才重新配置的
    • 在步骤1中,如果你是默认回车enter 三次的话,在使用ssh连接github是没有这个问题的,同时会在目录C:\Users\Administrator\.ssh下产生id_rsaid_rsa.pub两个文件,到github默认配置就可以了
    • 而我是在第一次回车时,修改了文件名,输入/c/Users/Administrator/.ssh/id_github_rsa,即在默认目录下生成id_github_rsa文件,后面不设置密码,按两次回车,就生成了id_github_rsaid_github_rsa.pub两个文件,这样子标识度就高了,生成id_gitee_rsa密钥,也是一样的步骤
    • 登录github,在Settings—>SSH and GPG keys—>New SSH key中,将id_github_rsa.pub公钥内容添加到Key中,Title可以随便填,最好是带有描述信息的,类似Win10-Clientgitee的配置也是差别多的
    • 测试ssh keys是否设置成功,在git bash中输入命令—ssh -T git@github.com 或者 ssh -T git@gitee.com,出现描述信息中的错误
  3. 解决方案:

    1、方法一:使用默认名字

    • 重新生成密钥对,不指定名字,使用默认名字 (老老实实)

    2、方法二:使用ssh-agent代理管理git私钥

    • git bash中输入命令:

      #启动 agent
      eval `ssh-agent -s`  #(注意这里是反引号)
      #添加私钥(自己定义的私钥名)
      ssh-add ~/.ssh/id_github_rsa 
      
    • 再次输入命令—输入命令—ssh -T git@github.com 或者 $ ssh -T git@gitee.com,就能成功连接了

    • 但是我发现,每次退出git bash,再连接时,又会出现同样的错误,又需要走一遍方法二(小麻烦)

    3、方法三:连接时指定私钥文件名

    • 指定自己重命名的私钥文件名连接:

      # 例如我的私钥是`id_github_rsa`
      ssh -T -i id_github_rsa git@github.com
      

      在这里插入图片描述

    • 测试连接成功,但感觉还是有点小麻烦

    4、方法四Vim修改SSH配置文件

    • 注意,这一步还是有点小坑的,配置文件需要使用Root管理员才能修改,否则修改完,无法保存

    • Windows下没有sudo命令,所以我们需要这么做,在Windows任务栏左侧使用搜索框,搜索git bash,鼠标单击右键,以管理员身份运行

    • 这时候git bash便具备权限了,输入命令—vim /etc/ssh/ssh_config,在Vim编辑器中做以下操作:

      Host *之上添加自己的自定义设置信息:

      操作步骤:1、按 i 进入编辑模式,2、添加下面的配置信息 ,3、按shift + :输入wq,保存退出

      #####################################
      #By kaltons
      Host github.com			
      HostName github.com		
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_github_rsa#By kaltons
      Host gitee.com
      HostName gitee.com
      PreferredAuthentications publickey
      IdentityFile ~/.ssh/id_gitee_rsa
      #####################################
      
      # HostName 				  —— 这个是真实的域名地址
      # Host 					  —— 自定义别名,但会影响git相关命令,例`ssh -T git@github.com`,@别名
      #PreferredAuthentications —— 配置登录时用什么权限认证--可设为publickey,password publickey,keyboard-								 interactive等
      #IdentityFile 			  —— 前面自定义配置的私钥位置,例如:~/.ssh/id_github_rsa
      
    • 例如我的配置信息图

      在这里插入图片描述

    • 再次测试ssh keys是否设置成功

      在这里插入图片描述

      这时候githubgitee都能够连接成功了

    • 推荐使用方法四,可以自定义控制不同的SSH Keys连不同的Git环境

这篇关于Git错误记录 — git@github.com: Permission denied (publickey)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/277300

相关文章

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

基于Spring Boot 的小区人脸识别与出入记录管理系统功能

《基于SpringBoot的小区人脸识别与出入记录管理系统功能》文章介绍基于SpringBoot框架与百度AI人脸识别API的小区出入管理系统,实现自动识别、记录及查询功能,涵盖技术选型、数据模型... 目录系统功能概述技术栈选择核心依赖配置数据模型设计出入记录实体类出入记录查询表单出入记录 VO 类(用于

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的