我已经在我的mac上安装了os服务器(小牛),并希望添加机器人。由于某些原因,我的远程回购位于其他外部服务器上,并且我可以在指定端口上通过用户名和密码访问它。我将远程回购添加到os服务器中,如下所示:
ssh://1.2.3.4:端口/path/to/repo.git
...filled用户名和密码。
然后,我在Xcode中添加了bot,但是当我点击integrate时,它会失败:
克隆入'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端口。 debug1:建立连接。 无法创建目录‘/var//..ssh’。 debug1: identity文件/var/debug1/..ssh/id_rsa type -1 debug1: identity文件/var/工作组identity/..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-3 ubuntu1 debug1: match: OpenSSH_6.0p1 Debian-3 ubuntu1 pat OpenSSH* debug1: SSH2_MSG_KEXINIT发送 debug1: SSH2_MSG_KEXINIT接收 debug1: kex: server->client kex 128-CTRHMAC-MD5无 debug1: kex: client->server kex 128-CTRHMAC-MD5无 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 服务器主机密钥: RSA b6:b8:0e:e4:25:63:6d:64:a3:d6:6d:7f:46:85:72:0d debug1:在没有端口标识符的情况下进行检查,已知1.2.3.4:端口没有RSA主机密钥,并且您已经请求严格检查。主机密钥验证失败。 致命:无法从远程存储库读取。 请确保您有正确的访问权限和存储库存在。 已知主机文件路径位于/Library/Server/Xcode/Config/ SSH _已知_host中。 启用SSH严格的主机检查(您可以通过编辑 /Library/Server/Xcode/Config/xcsbuildd.plist中的SSHStrictHostKeyChecking密钥 不受信任的HTTPS证书被禁用(您可以通过编辑 /Library/Server/Xcode/Config/xcsbuildd.plist中的TrustSelfSignedSSLCertificates密钥
我假设权限存在问题,但是在我的/var中有一些具有不同权限的目录,当然也没有teams服务器文件夹.
因此,我不知道如何设置适当的权限(而不更改/var.的其他子目录的权限)。我可以尝试手动创建目录"teams“,但是不知道有什么权限.?你有什么想法吗?
编辑:为了测试目的,我用777创建了teamsserver目录,但这并不能解决我的问题。日志看起来与以前的日志相同,只是没有一行:
无法创建目录‘/var//..ssh’。
有什么想法吗?
谢谢
发布于 2013-10-31 14:46:48
好吧,我花了点时间,但我有个解决办法.实际上有两种解决方案。羞于承认但阅读和理解日志就足以解决问题(再说一遍:P)。
第一个答案:
在安装os x服务器之前,我的服务器主机密钥被添加到..ssh/知名主机中。服务器不使用已知主机的路径。如log所说,服务器使用:
已知主机文件路径位于/Library/Server/Xcode/Config/ SSH _已知_host中。
在我的案子里那个文件是空的。因此,要解决这个问题,将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。
又来了。
发布于 2013-10-29 00:46:48
当我尝试在ssh密钥对保护的github上运行git命令时,方案操作构建脚本也遇到了类似的问题。
机器人使用_teamsserver系统帐户运行生成。正如您已经发现的,默认情况下,这些帐户没有主目录。要设置构建以访问和修改其主目录,我成功地完成了以下操作(您的里程可能有所不同):
sudo mkdir /var/teamsserver
sudo chown -R _teamsserver:_teamsserver /var/teamsserver/
sudo chmod -R 770 /var/teamsserver/HTH
发布于 2014-01-09 20:49:39
如果您已经尝试了上面的操作,但仍然获得了一个权限被拒绝的错误,那么您可能没有对该文件/目录的正确权限。
$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})https://stackoverflow.com/questions/19625530
复制相似问题