2013-10-28 53 views
10

我已经在我的Mac上安装了os x服务器(Mavericks),并且想添加bot。出于某些原因,我的远程回购站位于其他外部服务器上,并且我可以通过指定端口上的用户名和密码访问它。我已经添加了远程回购到OS X服务器这样的:无法创建目录/ var/teamsserver

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

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

然后我在Xcode中添加的机器人,但是当我打整合失败原木:

克隆到 'ssh_myusername_1_2_3_4_PORT_path_to_repo_git' ......

OpenSSH_6.2p2,OSSLShim 0.9.8r 12月8日2011 DEBUG1:读取

配置数据的/ etc/ssh_config中DEBUG1:在/ etc/ssh_config中管线20:用于* DEBUG1

应用选择:连接到1.2.3.4 [1.2.3.4]端口PO RT。

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:匹配:OpenSSH_6。0P1 Debian的3ubuntu1轻拍的OpenSSH *

DEBUG1:SSH2_MSG_KEXINIT发送

DEBUG1:SSH2_MSG_KEXINIT接收

DEBUG1:KEX:服务器 - >客户端AES128-CTR HMAC-MD5无

DEBUG1:KEX:客户端 - >服务器AES128-CTR HMAC-MD5无

DEBUG1:SSH2_MSG_KEX_DH_GEX_REQUEST(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已知主机文件路径位于 /库/服务器/ Xcode中/配置/的ssh_known_hosts

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

SSHStrictHostKeyChecking键禁用此/Library/Server/Xcode/Config/xcsbuildd.plist

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

启用此在 /Library/Server/Xcode/Config/xcsbuildd.plist

我认为有一个与权限,但在我的/ var问题有一些目录,用不同的权限,当然还有个

TrustSelfSignedSSLCertificates关键没有团队的服务器文件夹...

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

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

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

任何想法?

感谢

回答

7

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

第一个答案:加入

我的服务器主机密钥的.ssh/known_hosts里面,然后再安装OS X服务器。服务器不会使用已知主机的路径。作为日志服务器说用途:

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

而该文件是在我的情况下空。所以要解决这个问题,只需将known_hosts复制到ssh_known_hosts即可:

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

就这么简单。

第二个答案:

Acording记录再次被启用

SSH严格的主机验证(您可以通过编辑 禁用此在/ Library /服务器/ Xcode中/配置/ xcsbuildd的SSHStrictHostKeyChecking关键。 plist中

变化SSHStrictHostKeyChecking为false。

它的完成股份公司艾因。

+1

这个答案和上面的user1132570答案解决了这个问题。因此,如果此答案不能解决您的问题,请确保检查/ var/teamsserver是否存在。 –

+1

这不适合我。两者都曾抱怨无法从/ var/teamsserver创建目录。 – Rob

+0

您是否尝试过手动处理它? user1132570建议的方式足以以适当的权限创建它。 – zioolek

8

试图对抗SSH密钥对保护的GitHub库运行git命令时,我经历了计划行动构建脚本类似的问题。

Bots使用_teamsserver系统帐户运行构建。正如您发现的,这些帐户默认情况下没有主目录。要设置构建访问和修改自己的主目录,我有以下的(你的里程可能会发生变化)成功:

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

HTH

+0

谢谢你的建议,但是正如我写的那样没有帮助:/。 这些行仍然存在问题: debug1:身份文件/var/teamsserver/.ssh/id_rsa类型-1 debug1:身份文件/var/teamsserver/.ssh/id_rsa-cert类型-1 debug1:身份文件/var/teamsserver/.ssh/id_dsa type -1 debug1:identity file /var/teamsserver/.ssh/id_dsa-cert type -1 此外,我已经将id_rsa添加到/var/teamsserver/.ssh,但它只帮助: debug1:身份文件/var/teamsserver/.ssh/id_rsa类型1(与之前不同-1) ...仍在寻找解决方案... – zioolek

+0

Thanks @ user1132570。上述脚本确实照顾了目录问题。 –

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}
0

我做三件事让我闯过这一点,虽然我不知道其中哪些解决了这个问题:

  1. 变化在我的项目使用HTTPS而不是SSH所有Git仓库(GIT)版本的网址
  2. 禁用SSHStrictHostKey根据来自机器人源代码控制日志的指示禁用。
  3. 根据日志中的相同说明启用TrustSelfSignedSSLCertificates。

还检查出https://discussions.apple.com/thread/5586872以防万一这是一个问题。

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