2013-02-19 45 views
0

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

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

现在我刚刚上传使用

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

的关键,但我认为这是奇怪的/不正确上传同一用户的关键只为一个不同的URL。

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

+0

不是一个SSH专家,但如果它的工作原理,它是证明我没有看到这个问题 – CharlesB 2013-02-19 10:08:29

回答

1

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

你可以在~/.ssh/config构建服务器上做到这一点:

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

这是什么做什么呢? – meijuh 2013-02-19 10:13:41

+0

它告诉你本地的ssh客户端使用'localhost'连接到指定的主机 – sehe 2013-02-19 12:03:17