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

相关文章

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓