【发布时间】:2015-06-28 19:35:00
【问题描述】:
我在我的服务器上运行 Gitlab CE,并使用几个不同的用户帐户按兴趣对我的存储库进行分组。问题在于 SSH。
我为github找到了以下解决方案:
https://gist.github.com/jexchan/2351996
在本指南中,只需在配置中使用具有相同主机名的不同主机。实现我想要实现的目标几乎没有什么努力。但是这个解决方案不适用于 Gitlab,或者至少不适用于我。
这个解决方案遍布整个网络。一个使用较少但对我有用的,是这个:
https://gist.github.com/gubatron/d96594d982c5043be6d4
在第二种情况下,将子域名分配为 ssh 配置中具有相同主机名的主机,并在 git 配置中使用相同的子域。 小例子:
SSH 配置:
Host user1.git.mydomain.at
HostName git.mydomain.at
IdentityFile ~/.ssh/id_rsa_user1
Host user2.git.mydomain.at
HostName git.mydomain.at
IdentityFile ~/.ssh/id_rsa_user2
混帐:
git remote set-url origin admin@user1.git.mydomain.at:user1/foo.git
git remote set-url origin admin@user2.git.mydomain.at:user2/foo.git
可以看到,我必须手动更改每个 repo url。我想避免这种情况,并且更喜欢第一种解决方案。
我错过了什么重要的东西吗?
【问题讨论】:
-
admin@?不应该是git@吗? -
通常是git。但我不拥有服务器。所以我只能使用我自己的用户名,这也是指南建议的设置方式。这与我发布的问题有关吗?
-
如果网址正常,那么没关系。
-
正如我在上面的问题中所述。网址正在工作。如果我只使用配置中的一个 ssh 键,git 命令也可以工作。但是有多个我有问题。
-
我不明白你在问什么。您引用的两种解决方案都是相同的,除了
Host的命名约定不同。任何一种解决方案都应该同样有效,所以如果一个有效而另一个无效,那么您的问题就是缺少一些相关信息。