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环境

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值