我和一个朋友共用我的电脑。我已经在Windows 7上使用git bash shell推送到GitHub。现在我们在那台电脑上做一个不同的项目,我需要她推到她的账户上。但它一直试图使用我的用户名,并说我没有访问她的存储库:
$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
重要:2021年8月13日删除了对密码验证的支持。
我一直在使用一台机器,用不同的用户名将代码推送到两个不同的GitHub帐户。假设您已经设置了一个帐户,并想添加一个新帐户:
生成新的SSH密钥SSH -keygen -t rsa -C "myaddress@example.com"
保存它,但记住不要覆盖现有的id_rsa。给它一个不同的名字,例如id_rsa_another
复制密钥的内容到你的GitHub帐户:
设置-> SSH和GPG密钥-> SSH新密钥->标签粘贴
the key ->添加SSH密钥
将密钥添加到ssh代理:ssh- Add ~/.ssh/id_rsa_another
安装一个GitHub主机:用touch ~/创建一个配置文件。Ssh /config并编辑文件,为您的帐户提供配置:
#first account
Host github.com-first
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
#another account
Host github.com-another
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_another
现在您应该能够根据您添加到ssh代理的键从不同的帐户推送,即使用您的第一个帐户
ssh-add ~ / . ssh / id_rsa。
你可能还想更改你的用户邮箱:
Git配置——全局用户。电子邮件“myaddress@example.com”
或者在向其中一个帐户发送代码时,在权限错误的情况下清除SSH密钥:
ssh-add - d
如果您在SSH协议中使用公钥认证,您将发现两者都没有
Git配置——本地凭证。助手”“
Git配置——local user.name和Git配置——local user.email
工作,你必须指定私钥属于你想玩的用户,比如
➜ Lang git:(main) ✗ git config --local -l | cat
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=git@github.com:xyz/1A.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.main.remote=origin
branch.main.merge=refs/heads/main
user.name=xyz
user.email=xyz@post.com
credential.helper=
➜ Lang git:(main) ✗ git push
ERROR: Permission to xyz/1A.git denied to abc.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
➜ Lang git:(main) ✗ git config --local core.sshcommand 'ssh -i ~/.ssh/xyz@post.com -F /dev/null'
➜ Lang git:(main) ✗ git push
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 8 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 30.42 KiB | 10.14 MiB/s, done.
Total 7 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:xyz/1A.git
660593a..2972551 main -> main
➜ Lang git:(main) ✗