本文主要是介绍Git错误记录 — git@github.com: Permission denied (publickey),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、记录 1
-
描述信息:
使用命令
ssh -T git@github.com
测试公钥是否添加成功时,报错;#提示信息(github) git@github.com: Permission denied (publickey) #提示信息(gitee) git@gitee.com: Permission denied (publickey)
-
错误场景:
Win10环境下,为
github
与gitee
配置SSH,实现免密登录配置步骤如下:
- 在
git bash
中输入命令—ssh-keygen -t rsa -C "XXX@email.com"
,回车 - 这里因为我是嫌之前配置的名字是默认的,没有标识度,所以才重新配置的
- 在步骤1中,如果你是默认回车
enter
三次的话,在使用ssh
连接github
是没有这个问题的,同时会在目录C:\Users\Administrator\.ssh
下产生id_rsa
和id_rsa.pub
两个文件,到github
默认配置就可以了 - 而我是在第一次回车时,修改了文件名,输入
/c/Users/Administrator/.ssh/id_github_rsa
,即在默认目录下生成id_github_rsa
文件,后面不设置密码,按两次回车,就生成了id_github_rsa
和id_github_rsa.pub
两个文件,这样子标识度就高了,生成id_gitee_rsa
密钥,也是一样的步骤 - 登录
github
,在Settings
—>SSH and GPG keys
—>New SSH key
中,将id_github_rsa.pub
公钥内容添加到Key
中,Title
可以随便填,最好是带有描述信息的,类似Win10-Client
,gitee
的配置也是差别多的 - 测试ssh keys是否设置成功,在
git bash
中输入命令—ssh -T git@github.com
或者ssh -T git@gitee.com
,出现描述信息中的错误
- 在
-
解决方案:
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
是否设置成功这时候
github
和gitee
都能够连接成功了 -
推荐使用方法四,可以自定义控制不同的SSH Keys连不同的Git环境
这篇关于Git错误记录 — git@github.com: Permission denied (publickey)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!