我在github上有几个repo,还有两个不同的帐户。我的帐户是下面讨论的两个repo的创建者(用户名1创建了repo1,用户名2创建了repo2(。
如何配置tortoisegit以设置连接到每个github repo时要使用的凭据(腻子密钥(?
在Tortoisegit>设置>Git>远程,我已将repo1配置为:
Remote: origin
URL: git@github.com:username1/MyRepo1.git
Push URL: (blank)
Putty Key: path/to/account1.ppk
并且repo1配置为:
Remote: origin
URL: https://github.com/username2/myRepo2.git
Push URL: (blank)
Putty Key: path/to/account2.ppk
然而,当我试图推动第一次回购时,我得到了错误:
git.exe push --progress "origin" master:master
ERROR: Permission to username1/MyRepo1.git denied to username2. <-- why is username2 showing up here?!?
fatal: Could not read from remote repository.
为什么它试图使用用户名2(repo1上没有配置(进行连接?在哪里可以配置连接时使用的用户名?
我尝试更改Tortoisegit>中的设置;设置>Git,设置Name: username1
和Email: user1@mydomain.com
,但没有任何区别(在尝试推送时收到相同的错误消息(。
我试着遵循TortoiseGit公认答案的解释——多个GitHub存储库,每个存储库都有不同的密钥对,然而,我不知道该为其中任何一个做什么。。。
- 使用PuTTY会话,如中所述
嗯。。。这两个链接上的说明都过于笼统,毫无用处。没有具体的例子可以借鉴。
- 使用OpenSSH
它基本上说";更改为"ssh"。。。但这只会产生新的问题。如何配置OpenSSH以建立连接?或者告诉它哪些凭证用于哪个回购?再一次没有具体的例子。
- 使用https
如果我将repo1的连接更改为https://github.com/username1/MyRepo1.git
,则会得到错误fatal: unable to access 'https://github.com/username1/MyRepo1.git/': The requested URL returned error: 403
所以我把它改为https://username1@github.com/username1/MyRepo1.git
,然后我收到一个弹出窗口,要求我登录github。作为最后的手段,我这样做了,而且(似乎(有效,但是,我想使用ssh密钥,而不是基于登录的身份验证。
所以。。。回到问题:如何配置TortoiseGit以使用不同的SSH凭据连接到不同的repo
而且,对于奖励积分。。。我可以为TortoiseGit配置一组默认凭据以供使用吗?然后,当需要不同的东西时,我可以逐个回购这些凭据吗?如果是,如何?(我问是因为这似乎是无意中发生的事情,所以我想知道是否有办法故意将其作为一种功能!(
感谢您的阅读,并提前感谢您的帮助!
如何配置TortoiseGit以使用不同的SSH凭据连接到不同的repo?
首先,对两个存储库都使用SSH URLS。
由于repo2
是用https://github.com/username2/myRepo2.git
配置的,所以SSH密钥被简单地忽略
这就是乌龟提到username2
的原因
如果您想要使用关联的SSH密钥,则需要git@github.com:username2/myRepo2.git
。