0

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

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

现在我刚刚上传了一个密钥

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

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

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

4

1 回答 1

1

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

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

Host sub0.domain.tld sub1.domain.tld sub2.domain.tld sub3.domain.tld
HostName localhost
# User git
# Compression no
# ControlMaster auto
于 2013-02-19T10:12:02.320 回答