无法创建目录/ var/teamsserver

zio*_*lek 10 macos continuous-integration bots osx-server xcode5

我已经在我的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类型-1

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

debug1:标识文件/var/teamsserver/.ssh/id_dsa-cert类型-1

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

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

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

debug1:match:OpenSSH_6.0p1 Debian-3ubuntu1 pat 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 <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 Known Hosts文件路径位于/ Library/Server/Xcode/Config/ssh_known_hosts

启用S​​SH严格主机检查(您可以通过编辑来禁用它

/Library/Server/Xcode/Config/xcsbuildd.plist中的SSHStrictHostKeyChecking键

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

/Sibrary/Server/Xcode/Config/xcsbuildd.plist中的TrustSelfSignedSSLCertificates键

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

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

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

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

有任何想法吗?

谢谢

小智 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/
Run Code Online (Sandbox Code Playgroud)

HTH


zio*_*lek 7

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

第一个答案:

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

SSH Known Hosts文件路径位于/ Library/Server/Xcode/Config/ssh_known_hosts

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

sudo cp ~/.ssh/known_hosts /Library/Server/Xcode/Config/ssh_known_hosts
Run Code Online (Sandbox Code Playgroud)

就这么简单.

第二回答:

再次记录日志

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

将SSHStrictHostKeyChecking更改为false.

它再次完成.