Permission-to-xxxxx-git-denied-to-xxx-解决办法
作者: 時光
原文: https://blog.shiguang666.eu.org/2024/06/07/c1b995bb8e45
来源: 時光的博客园子
一、问题描述
同一台电脑上需要操作两个Github仓库,提交代码时出现该错误,原因是没有权限,不能从远程仓库读取。
二、解决方案
方案一(推荐)
1、创建SSH
切换到 C:\Users\your_user_name\.ssh
目录下,使用cmd打开该目录,但习惯上密钥文件存放在此目录,也可以在其他目录打开,生成文件后粘贴过来即可。
使用以下命令生成新的密钥
ssh-keygen -t rsa -C "your email"
提示输入要保存的文件,默认为 id_rsa
,为了方便区分不同账号,我这里起个别名 shiguang
,一路回车即可
我这里按照同样的操作生成了两对SSH密钥,如果想保留原来的密钥,也可以只生成一个
2、GitHub绑定SSH
分别给两个账号绑定新的密钥
到 Github => 点击头像 => settings => SSH and GPG keys => new SSH key
将 .pub
后缀的公钥保存到GitHub
3、配置Config文件
配置C:\Users\your_user_name\.ssh\config
文件,注意,config文件没有后缀,如果该目录没有此文件就手动创建一个 ,内容如下所示,我只需要操作连个账户,如果有多个可以配置多个
#shiguang-coding
Host shiguang
HostName github.com
User git
IdentityFile ~/.ssh/shiguang
#xiangyangdev
Host xiangyang
HostName github.com
User git
IdentityFile ~/.ssh/xiangyang
需要修改 Host
以及 IdentityFile
为不同账号对应的别名及私钥文件
4、重置远程地址
使用以下命令查看当前仓库远程地址
git remote -v
使用以下命令修改远程仓库地址
git remote set-url origin 别名:仓库路径.git
例如,原本的仓库路径为
git@github.com:Shiguang-coding/blog_source.git
或者
https://github.com/Shiguang-coding/blog_source.git
改为:
shiguang:Shiguang-coding/blog_source.git
修改好后使用 git push
重新提交即可
如图所示:
方案二(不推荐)
如果确认之前账户不用了,直接删除ssh文件中的内容,再新建一个ssh即可
使用以下代码配置新账号的用户名和邮箱
git config user.name "用户名"
git config user.email "邮箱"