Git--Git提交时报错:Permission to XXX.git denied to user
2017-07-01 23:58
423 查看
情景描述
情况大致是这样的,最开始的时候,我注册了一个github的账号,暂且就叫A账号吧,然后关联了Android Studio,并用这个账号创建了几个远程仓库。然后有一天,我突然感觉A这个名字难听还不好记,于是我就把A这个账号删了,重新又注册了一个账号B。最近在写一个Demo,想把这个Demo上传到github上,本地仓库也建好了,项目也成功的commit到本地仓库了,但在最后一步push到远程仓库的时候报错了,一直显示:remote: Permission to B/Demo.git denied to A. fatal: unable to access 'https://github.com/A/Demo.git/': The requested URL returned error: 403
大致意思就是没有权限
原因分析
其实具体原理我理解的也不是很清楚,根据这篇文章Git 最著名报错 “ERROR: Permission to XXX.git denied to user”终极解决方案,所以原因大致是这样的:我的A账号和B账号添加的是同一个公钥,在操作的时候github就不能区分到底是哪个用户在安全登陆网站。因为之前A账号登过,所以B账号这个时候再用这个公钥去登就不被允许了。幸运的是,一个账号可以拥有多个公钥,那我把B账号重新生成一个公钥,然后用这个新的公钥去操作就可以了。画了个丑丑的草图(viso不会用了。。。)
解决方法
1.生成一个新的SSH KEYgit bash 终端输入命令(后面”“里面的内容可以自己取)
$ ssh-keygen -t rsa -C "IWindow_personnal_publicKey"
然后不要直接按回车,设置一下rsa文件的名称,用来和A账号的rsa文件进行区分,比如我输入:
/Users/Apple/.ssh/id_rsa_bcount
然后后面的两个直接按enter键,如果操作无误的话就会生成rsa文件了
整体的git命令截图如下:
2. GitHub 上添加新 生成的 SSH key
打开.ssh文件夹,找到我们之前生成的id_rsa_bcount文件,然后打开,复制里面的内容,我这里是用NotePad软件打开的。
然后点击github上的[New SSH key] 按钮,将复制的rsa内容粘贴到key输入框中,然后 点击[Add SSH Key]就生成一个新的ssh key了。
3.打开~/.ssh/config文件
首先看一下.ssh文件夹下面有没有config这个文件,如果没有就创建一个config文件。
创建config的命令行:
$ git touch config
然后我们就要重新添加一个Host,Host的名字我取github-bcount,
具体做法是用NotePad打开config文件,然后把下面的内容复制进去:
Host github-bcount HostName github.com User git IdentityFile ~/.ssh/id_rsa_BCount
然后保存config文件。
我们可以使用
$ cat config命令来查看config里面的内容,确认是否添加正确。
4.将GitHub SSH仓库地址中的git@github.com替换成新建的Host别名
关于替换的规则:
原来的项目的ssh地址为:
$ git@github.com:A/Demo.git
那么替换后的地址为:
$ github-bcount:A/BestoneGitHub.git
或者:
$ git@github-bcount:A/Demo.git
具体修改的命令行:
首先用
$ git remote -v判断一下现在连的是不是Demo这个地址的远程仓库,如果是的,修改host名称:
$ git remote set-url origin github- bcount:A/Demo.git
然后可以使用
$ ssh -T github-bcount命令看看是否修改成功
如果修改成功,再使用
$ git remote -v命令时,下面应该显示:
github github- bcount:A/Demo.git (fetch) github github- bcount:A/Demo.git (push)
然后再次进行提交项目等操作,应该就可以了。
如果还不行,进行下一步操作:把你的密钥加入sshAgent代理中:
首先执行命令:
eval "$(ssh-agent -s)"
然后添加密钥 id_rsa_bcount:
ssh-add id_rsa_bcount
然后添加默认密钥 id_rsa:
$ ssh-add id_rsa
这样就应该ok了。可以使用
$ ssh -T git@github.com来看一下密钥isa是否连接成功github或者
$ ssh -T git@github-bcount测试密钥id_rsa_bcount是否连接成功github
如果操作无误的话应该就可以了。
文章链接
Git 最著名报错 “ERROR: Permission to XXX.git denied to user”终极解决方案从0开始学习 GitHub 系列之「向GitHub 提交代码」
SSH原理与运用(一):远程登录
相关文章推荐
- Git push/pull的时候报403或者提交时报错:Permission to XXX.git denied to user
- Git 最著名报错 “ERROR: Permission to XXX.git denied to user”终极解决方案
- github的Permission to xxx.git denied to user的问题
- Git 最著名报错 “ERROR: Permission to XXX.git denied to user”终极解决方案
- 异常:“ERROR: Permission to XXX.git denied to user”终极解决方案
- git爬坑不完全指北(一):Permission to xxx.git denied to user的解决方案
- remote: Permission to .git denied to user.
- remote: Permission to gituser/repositoryname.git denied to oldusername.
- 解决mac电脑上出现Permission to xxx.git denied to xxx的问题
- git使用中遇到的remote:Permission to xxx denied to xxx问题如何解决报错403找不到的问题
- 上传项目到github报错:Permission to xxx/xxx.git denied to xxxxxxx.
- github 有名的问题【ERROR: Permission to .git denied to user】
- git push 到github时,报错:ERROR: Permission to xxx.git denied to sb.
- MACOS下解决git push error: Permission to XXX.git denied to XXX
- [Git]Error: Permission to user/repo denied to other-user
- git使用中遇到的remote:Permission to xxx denied to xxx问题如何解决
- git 提交代码出现git Permission to Xx denied to Xx 错误
- github多用户提交错误Permission to repo denied to
- 解决mysql创建数据库后出现:Access denied for user 'root'@'%' to database 'xxx'的问题
- GitHub "remote: Permission to account/somefile.git denied to account"