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

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定