My~/.ssh/config有这个条目
Host personal
HostName github.com
IdentityFile ~/.ssh/id_ed25519personalgithub
IdentitiesOnly yes
我使用进行git克隆
git clone git@personal:deanhiller/testwithexecutor-all.git
这很好。我的.git/config文件像一样正确
[remote "origin"]
url = git@personal:deanhiller/testwithexecutor-all.git
fetch = +refs/heads/*:refs/remotes/origin/*
然而,当我用git-push时,我会得到这个错误
dean@Deans-MacBook-Pro testwithexecutor-all % git push
ERROR: Permission to deanhiller/testwithexecutor-all.git denied to deancompanyuser
它使用了错误的用户名,而不是用户名deanhiller!!!为什么会这样?
如果我做git-config-l,我就没有用户名集(这是我想要的,这样我就可以很容易地在存储库中工作,而不需要很容易地进行克隆和推送(。我不想每次克隆repo时都不断更改用户名或设置用户名。它是从哪里抓来的???
首先,在配置文件中添加User git:
Host personal
HostName github.com
User git <=====
IdentityFile ~/.ssh/id_ed25519personalgithub
IdentitiesOnly yes
这样,就可以使用personal:...
而不是git@personal
进行克隆
您可以使用ssh -Tv personal
(而不是ssh -Tv git@personal
(测试哪个用户使用该密钥进行了身份验证
其次,id_ed25519personalgithub.pub
已注册到deancompanyuser
的帐户,而不是deanhiller
的帐户
因此,deancompanyuser
无权推送到他们不拥有的存储库。
但它可以克隆deanhiller的存储库,如果该存储库是公共存储库的话。
用户deancompanyuser
很可能保存在钥匙链访问上。所以打开你的Mac上的钥匙链访问并搜索关于";GitHub"并删除该条目。之后,它不应该再显示错误的用户。