我想在Gitlab网站中使用2个帐户,每个帐户使用不同的ssh密钥
我成功生成了密钥并将其添加到~/.ssh
文件夹中
我创建了~/.ssh/config
文件并使用其中一个,它运行良好
我也可以通过编辑~/.ssh/config
文件
问题是:我想在同一时间使用它们,但我找到的所有教程都采用了不同的主机:/
实际上我的两个帐户都在同一个主机
如何编辑~/.ssh/config
文件以接受同一主机的两个帐户
注意:我看了this question,但我无法从中获得帮助
我的两个帐户是username1
和username2
repo URL看起来像:git@gitlab.com:username1/test-project.git
我当前的~/.ssh/config
档案:
Host gitlab.com-username1
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa
Host gitlab.com-username2
HostName gitlab.com
User git
IdentityFile ~/.ssh/id_rsa_username2
更新1:
1)当我在~/.ssh/config
文件中使用一个键时,一切都很完美(但每次我想要更改我使用的用户时更新它都很无聊)
2)当我使用这一行时
ssh -T git@gitlab.com-username1
ssh -T git@gitlab.com-username2
它的作品很好,并回复了一个欢迎的消息
从1)和2),我认为问题肯定来自~/.ssh/config
文件,特别是Host
变量
更新2 :(解决)
解决方法是编辑.git/config
文件
[remote "origin"]
url = git@gitlab.com:username1/test-project.git
至
[remote "origin"]
url = git@gitlab.com-username1:username1/test-project.git
并对username2
答案 0 :(得分:14)
您已完成ssh
配置。首先,检查它是否有效:
ssh -T git@gitlab.com-username1
ssh -T git@gitlab.com-username2
在两种情况下都应该成功。如果没有,则表示键未正确设置。验证各个用户的密钥是否在gitlab上。
如果有效,请转到您的git存储库并打开.git/config
。它将有一些像:
[remote "origin"]
url = git@gitlab.com:username1/test-project.git
将其替换为
[remote "origin"]
url = git@gitlab.com-username2:username1/test-project.git
(或username1
如果您想使用此用户名进行连接)。然后它应该允许你推。
答案 1 :(得分:2)
使用上面的确切~/.ssh/config
并将您使用git的网址更新为第一位用户git@gitlab.com-username1:username1/test-project.git
,第二位用户更新git@gitlab.com-username2:username2/test-project.git
(例如git clone git@gitlab.com-username1:username1/test-project.git
)
SSH将在gitlab.com-username1
中查找~/.ssh/config
别名,并使用正确的主机名和SSH密钥文件。
另一种方法是只使用一个用户进行推/拉,并为这一个用户授予所需权限。