Git 推送远程报错:remote: Permission to UserA/DocumentName.git denied to UserB. 解决方案

第一次使用github创建远程仓库,按照github使用指南指导都没问题,就是到了从本地推送到远程到时候,报错了:



可能是我之前就生成过SSH Key的原因(使用的是公司生成的,跟github类似的版本控制管理库),导致github没法识别并连接上。

还有一种可能是,你拿到的电脑是已经被用过的,电脑的SSH公钥已经绑定了别人的GitHub 账号,就不能再用他的公钥了。


具体解决方法:

1. 生成一个新的SSH key:

运行下面的命令创建SSH Key。

$ ssh-keygen -t rsa -C "[email protected]"

Generating public/private rsa key pair.

Enter file in which to save the key

(/Users/your_user_directory/.ssh/id_rsa): 按回车键

Enter passphrase (empty for no passphrase): 输入密码

Enter same passphrase again: 再次输入密码

“[email protected]”的部分请改成您在创建账户时用的邮

箱地址。密码需要在认证时输入,请选择复杂度高并且容易记忆的组合。

输入密码后会出现以下结果。

Your identification has been saved in /Users/your_user_directory/.ssh/id_rsa.

Your public key has been saved in /Users/your_user_directory/.ssh/id_rsa.pub.

The key fingerprint is:

fingerprint值 [email protected]

The key's randomart image is:

+--[ RSA 2048]----+

| .+ + |

扫描二维码关注公众号,回复: 2821077 查看本文章

| = o O . |




(注意我原来就已经有id_rsa了,现在重新创建一个自己的key,命名为id_rsa_personal_ziqi)



创建完之后,多了id_rsa_personal_ziqi 和id_rsa_personal_ziqi.pub


2、打开新生成的~/.ssh/id_rsa_personal_ziqi.pub文件,将里面的内容添加到GitHub后台:

(用cat命令或者vim查看内容)



打开github,右上角setting,




3.打开(或者新建)~/.ssh/config文件.

没有config文件则创建,终端输入touch config ,创建完以后用Vim打开或者是在Finder打开一样。
在不影响默认的github设置下我们重新添加一个Host:
建一个自己能辨识的github别名,我取的是github-personal,新建的帐号使用这个别名做克隆和更新

#Default GitHub
  Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

  Host github-personal
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_personal_ziqi
编辑完毕之后按下ESC,:wq,:wq是保存并退出vim编辑器
具体在终端代码如下:

cat config 是把config文件里面的内容在终端输出


4、将GitHub SSH仓库地址中的[email protected]替换成新建的Host别名。

如原地址是[email protected]:ziqiiii/Python_learning.git替换后应该是:github-personal:ziqiiii/Python_learning.git
如果是新建的仓库,直接使用替换后的URL克隆即可。如果已经使用原地址克隆过了,可以使用命令修改:

修改之前:



修改之后:


最后我们进行正常的push操作,就可以啦~


完成以上设置后,就可以用手中的私人密钥与GitHub 进行认证和通信了。让我们来实际试一试

命令行输入:ssh -T github-personal


(正常情况下是输入:

ssh -T [email protected]
  因为我们改了host name为 github-personal嘛,所以会不一样)


看到这句就是设置成功啦:

Hi ziqiii! You've successfully authenticated, but GitHub does not
provide shell access.



参考自:

1. Git 最著名报错 “ERROR: Permission to XXX.git denied to user”终极解决方案


2. Github入门与实践pdf




猜你喜欢

转载自blog.csdn.net/qq_20417499/article/details/80611852
今日推荐