我有几个SSH密钥:
~/.ssh/
id_rsa
id_rsa.pub
fizz
fizz.pub
buzz
buzz.pub
我使用HTTPS克隆了一个GitHub项目(例如git clone https://github.com/someorg/somerepo.git
)。我做了一些改变,现在我正试图推动它们,但是我得到了一个着名的错误:
“对someorg / somerepo.git的许可被拒绝为blah-user ”
blah-user
与我的id_rsa
SSH密钥相关联的用户(我相信)。所以我认为git默认使用我的id_rsa
密钥,而我想专门使用buzz
密钥进行推送(我已将buzz
密钥与我的GitHub帐户相关联)。
关于我在这里可以做什么的任何想法,或者我可以做些什么来专门使用buzz
密钥作为推送的一部分?
答案 0 :(得分:3)
由于您克隆了https网址,因此在推送到您的遥控器时会尝试使用https。 HTTP(S)和SSH是不同的协议,使用不同的凭据,因此实际上根本不会查看您的ssh-key。
Git可能会在提示符中询问您的http凭据,或者您可以使用'git-credential-store'帮助程序将它们存档https://git-scm.com/docs/git-credential-store
如果使用ssh协议进行克隆,git会将身份验证委派给SSH,这将在.ssh目录中查找私钥。
您可以通过多种方式定义哪个键,我更喜欢设置一个.ssh / config文件,其中包含我要连接的主机的条目。
Host thehost.com
Hostname thehost.com
IdentityFile ~/.ssh/my_github_key_id_rsa
User mu-username