我在我的服务器上运行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:
git remote set-url origin [email protected]:user1/foo.git
git remote set-url origin [email protected]:user2/foo.git
可以看到,我必须手动更改每个repo url。我想避免这种情况,我更喜欢第一种解决方案。
我错过了什么重要的东西吗?
1条答案
按热度按时间t5fffqht1#
你两者都需要。
**假设:
1.用户名(非电子邮件)分别为user1和user2
1.您已上载足够的公共(即
.pub
)密钥,其各自的私钥为user1_rsa和user2_rsa1.服务器url的格式为server.com(即server.com替换为bitbucket.org,github.com等),则
~/.ssh/config
应包含:**II.**在你的git目录中,假设你已经添加了一个名为
origin
的origin,并且在一个名为domain
的域和一个名为project
的项目中,那么git remote -v
应该被配置为返回如下内容:git remote add origin [[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection) :domain/project.git
添加远程目录来获得此输出。关键是额外的**-user1
**,带破折号,在两个文件中匹配,并匹配您的 * 用户名 *。.git/config
,手动添加**-user1
**。