我在我的服务器上运行Gitlab CE并使用几个不同的用户帐户按兴趣分组我的回购。问题出在SSH上。
我为github找到了以下解决方案:
https://gist.github.com/jexchan/2351996
在本指南中,只需在配置中使用具有相同主机名的不同主机。这是实现我想要实现的目标的微不足道的努力。但是这个解决方案不适用于Gitlab,或者至少不适用于我。
此解决方案遍布整个网络。一个较少使用但正在为我工作的是这个:
https://gist.github.com/gubatron/d96594d982c5043be6d4
在第二个中,在ssh配置中将子域名称指定为具有相同主机名的主机,并在git config中使用相同的子域。 小例子:
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 admin@user1.git.mydomain.at:user1/foo.git
git remote set-url origin admin@user2.git.mydomain.at:user2/foo.git
可以看出,我必须手动更改每个repo url。我想避免这种情况,并希望第一个解决方案。
我错过了重要的事情吗?
答案 0 :(得分:0)
我假设:
.pub
)个键,其中相应的私钥为 user1_rsa 且 user2_rsa < / LI>
服务器网址的格式为server.com(即 bitbucket.org 替代 server.com , github.com 等等,然后~/.ssh/config
应包含:
Host server.com-user1
HostName server.com
User git
IdentityFile ~/.ssh/user1_rsa
Host server.com-user2
HostName server.com
User git
IdentityFile ~/.ssh/user2_rsa
II。在您的git目录中,假设您添加了一个名为origin
的来源,并且位于名为domain
的域中,并且项目名为project
,然后git remote -v
应配置为返回如下内容:
origin git@server.com-user1:domain/project.git (fetch)
origin git@server.com-user1:domain/project.git (push)
git remote add origin git@bitbucket.org-user1:domain/project.git
添加远程目录来获得此输出。关键是额外的 -user1
,带有短划线,在两个文件中都匹配,并匹配您的用户名。.git/config
并手动添加 -user1
。