我已经在我的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'。
有什么想法吗?
由于
答案 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.bundle/credentials/65885363-194e-454b-a3ce-56dcaaf5d3c9/id_rsa
)$sudo chown {#id} {#path}
)答案 3 :(得分:0)
我做了3件事让我过去了,虽然我不确定他们中哪一个解决了这个问题:
如果您遇到问题,请查看https://discussions.apple.com/thread/5586872。
当我有更多时间时,我会退回其中的一些项目并进行测试。