无法创建目录/ var / teamsserver

时间:2013-10-28 00:40:41

标签: macos continuous-integration xcode5 bots osx-server

我已经在我的mac上安装了os x server(Mavericks)并且想添加bot。由于某些原因,我的远程仓库位于其他外部服务器上,我可以通过指定端口上的用户名和密码访问它。我已将远程仓库添加到os x服务器,如下所示:

SSH://1.2.3.4:PORT /路径/到/ repo.git

...填写用户名和密码。

然后我在Xcode中添加了bot,但是当我点击集成时,它会失败并显示日志:

  

克隆到'ssh_myusername_1_2_3_4_PORT_path_to_repo_git'...

     

OpenSSH_6.2p2,OSSLShim 0.9.8r 2011年12月8日debug1:阅读

     

配置数据/ etc / ssh_config debug1:/ etc / ssh_config第20行:

     

应用* debug1的选项:连接到1.2.3.4 [1.2.3.4]端口PORT。

     

debug1:已建立连接。

     

无法创建目录'/var/teamsserver/.ssh'。

     

debug1:身份文件/var/teamsserver/.ssh/id_rsa类型-1

     

debug1:身份文件/var/teamsserver/.ssh/id_rsa-cert type -1

     

debug1:identity file /var/teamsserver/.ssh/id_dsa type -1

     

debug1:身份文件/var/teamsserver/.ssh/id_dsa-cert type -1

     

debug1:为协议2.0启用兼容模式

     

debug1:本地版本字符串SSH-2.0-OpenSSH_6.2

     

debug1:远程协议版本2.0,远程软件版本OpenSSH_6.0p1 Debian-3ubuntu1

     

debug1:匹配:OpenSSH_6.0p1 Debian-3ubuntu1轻拍OpenSSH *

     

debug1:发送了SSH2_MSG_KEXINIT

     

debug1:收到SSH2_MSG_KEXINIT

     

debug1:kex:server-> client aes128-ctr hmac-md5 none

     

debug1:kex:client-> server aes128-ctr hmac-md5 none

     

debug1:发送了SSH2_MSG_KEX_DH_GEX_REQUEST(1024 <1024&lt; 8192)

     

debug1:期待SSH2_MSG_KEX_DH_GEX_GROUP

     

debug1:SSH2_MSG_KEX_DH_GEX_INIT已发送

     

debug1:期待SSH2_MSG_KEX_DH_GEX_REPLY

     

debug1:服务器主机密钥:RSA b6:b8:0e:e4:25:63:6d:64:a3:d6:6d:7f:46:85:72:0d

     

debug1:没有端口标识符的检查没有RSA主机密钥[1.2.3.4]:PORT   你要求严格检查。主机密钥验证失败。

     

致命:无法从远程存储库中读取。

     

请确保您拥有正确的访问权限和存储库   存在。

     

SSH已知主机文件路径位于   / Library / Server / Xcode / Config / ssh_known_hosts

     

SSH严格主机检查   已启用(您可以通过编辑

来禁用此功能      

SSHStrictHostKeyChecking键入   /Library/Server/Xcode/Config/xcsbuildd.plist

     

不受信任的HTTPS   证书已禁用(您可以通过编辑

启用此功能      

TrustSelfSignedSSLCertificates键入   /Library/Server/Xcode/Config/xcsbuildd.plist

我认为权限存在问题但在我的/ var中有一些具有不同权限的目录,当然没有团队服务器文件夹......

所以我不知道如何设置适当的权限(不更改/ var ...的其他子目录的权限)。我可以尝试手动制作目录“团队服务器”,但不知道具有什么权限......?你有什么想法吗?

编辑:出于测试目的,我用777创建了teamsserver目录,但这并没有解决我的问题。日志看起来和以前一样但只是没有行:

  

无法创建目录'/var/teamsserver/.ssh'。

有什么想法吗?

由于

4 个答案:

答案 0 :(得分:8)

在尝试针对受ssh密钥对保护的github repo运行git命令时,我遇到了类似于scheme action构建脚本的问题。

Bots使用_teamsserver系统帐户运行构建。正如您所发现的,默认情况下这些帐户没有主目录。要设置构建以访问和修改其主目录,我已成功完成以下操作(您的里程可能会有所不同):

sudo mkdir /var/teamsserver
sudo chown -R _teamsserver:_teamsserver /var/teamsserver/
sudo chmod -R 770 /var/teamsserver/

HTH

答案 1 :(得分:7)

好的,我花了一些时间,但我有一个解决方案......实际上是两个解决方案。惭愧承认,但阅读和理解日志足以解决问题(再次:P)。

第一回答:

在安装os x server之前,我的服务器主机密钥已添加到.ssh / known_hosts。服务器不使用已知主机的路径。正如日志所说服务器使用:

  

SSH已知主机文件路径位于   /库/服务器/ Xcode中/配置/的ssh_known_hosts

并且该文件在我的情况下是空的。因此,要解决此问题,将known_hosts复制到ssh_known_hosts就足够了:

sudo cp ~/.ssh/known_hosts /Library/Server/Xcode/Config/ssh_known_hosts

就这么简单。

第二回答:

再次记录

  

启用SSH严格主机检查(您可以通过编辑禁用它)   /Library/Server/Xcode/Config/xcsbuildd.plist中的SSHStrictHostKeyChecking键

将SSHStrictHostKeyChecking更改为false。

再次完成。

答案 2 :(得分:0)

如果您已尝试上述操作但仍然收到权限被拒绝错误,则您可能没有该文件/目录的正确权限。

  • 你是谁跑步的? $id
  • $ls -al服务器尝试从中读取id_rsa的目录(可能类似于此路径:Library/Server/Xcode/Data/BotRuns/BotRun-a28db5fc-1932-47a0-a528-f52c75e421e2.b‌​undle/credentials/65885363-194e-454b-a3ce-56dcaaf5d3c9/id_rsa
  • 更改该文件的所有权^^($sudo chown {#id} {#path}

答案 3 :(得分:0)

我做了3件事让我过去了,虽然我不确定他们中哪一个解决了这个问题:

  1. 更改项目中的所有git存储库以使用HTTPS而不是SSH(git)版本的网址
  2. 根据来自机器人的源代码管理日志的说明禁用SSHStrictHostKeyChecking。
  3. 根据日志中的相同说明启用TrustSelfSignedSSLCertificates。
  4. 如果您遇到问题,请查看https://discussions.apple.com/thread/5586872

    当我有更多时间时,我会退回其中的一些项目并进行测试。