Git主机用于子模块和持续集成

时间:2013-02-19 10:04:50

标签: git ssh continuous-integration

我们有一个git存储库所在的服务器(debian)。同样的服务器也用于持续集成。 在构建步骤期间,使用其子模块克隆/更新git存储库。子模块的主机是subdomain.domain.tld。请注意,此主机正是这一台服务器。运行CI的用户是竹子。在没有用户的情况下指定子模块的主机,使得当通过ssh联系主机时,它自动以当前用户为前缀。这对我们的开发人员来说非常有效,因为每个开发人员都有这个服务器上的用户。

问题在于构建服务器。更新git子模块后,构建服务器会尝试连接到bamboo@subdomain.domain.tld而不是bamboo @ localhost。它无法连接,因为没有可用于bamboo@subdomain.domain.tld的ssh密钥。

目前我刚刚使用

上传了一个密钥
ssh-copy-id -i /home/bamboo/.ssh/id_rsa.pub subdomain.domain.tld

但我认为仅为不同的URL上传同一用户的密钥是奇怪/不正确的。

这个解决方案是正确/安全还是更容易解决这个问题?

1 个答案:

答案 0 :(得分:1)

它按设计工作,这并不奇怪。

您可以在构建服务器上的~/.ssh/config中执行此操作:

Host sub0.domain.tld sub1.domain.tld sub2.domain.tld sub3.domain.tld
HostName localhost
# User git
# Compression no
# ControlMaster auto