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



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

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

现在我刚刚上传了一个使用的密钥

ssh-copy-id -i /home/bamboo/.ssh/id_rsa.pub subdomain.domain.tld

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

这个解决方案是正确/安全的,还是有更简单的解决方案?

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

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

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

最新更新