问题描述
我已经在我的 mac 上安装了 os x server (Mavericks) 并且想添加 bot.由于某些原因,我的远程仓库位于其他外部服务器上,我可以通过指定端口上的用户名和密码访问它.我已经像这样向 os x 服务器添加了远程 repo:
I've installed os x server (Mavericks) on my mac and would like to add bot. For some reasons my remote repo is located on other external server and I have access to it by username and password on specified port. I've added remote repo to os x server like this:
ssh://1.2.3.4:PORT/path/to/repo.git
ssh://1.2.3.4:PORT/path/to/repo.git
...填写的用户名和密码.
...filled username and password.
然后我在 Xcode 中添加了 bot,但是当我点击集成时它失败并显示日志:
Then I've added bot in Xcode but when I hit integrate it fails with logs:
正在克隆到 'ssh_myusername_1_2_3_4_PORT_path_to_repo_git'...
OpenSSH_6.2p2,OSSLShim 0.9.8r 2011 年 12 月 8 日调试 1:读取
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 debug1: Reading
配置数据/etc/ssh_config debug1:/etc/ssh_config line 20:
configuration data /etc/ssh_config debug1: /etc/ssh_config line 20:
为 * debug1 应用选项:连接到 1.2.3.4 [1.2.3.4] 端口 PORT.
Applying options for * debug1: Connecting to 1.2.3.4 [1.2.3.4] port PORT.
debug1:连接已建立.
debug1: Connection established.
无法创建目录/var/teamsserver/.ssh".
Could not create directory '/var/teamsserver/.ssh'.
debug1:身份文件/var/teamsserver/.ssh/id_rsa type -1
debug1: identity file /var/teamsserver/.ssh/id_rsa type -1
debug1:身份文件/var/teamsserver/.ssh/id_rsa-cert type -1
debug1: identity file /var/teamsserver/.ssh/id_rsa-cert type -1
debug1:身份文件/var/teamsserver/.ssh/id_dsa type -1
debug1: identity file /var/teamsserver/.ssh/id_dsa type -1
debug1:身份文件/var/teamsserver/.ssh/id_dsa-cert type -1
debug1: identity file /var/teamsserver/.ssh/id_dsa-cert type -1
debug1:启用协议 2.0 的兼容模式
debug1: Enabling compatibility mode for protocol 2.0
debug1:本地版本字符串 SSH-2.0-OpenSSH_6.2
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1:远程协议版本2.0,远程软件版本OpenSSH_6.0p1 Debian-3ubuntu1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-3ubuntu1
debug1: 匹配:OpenSSH_6.0p1 Debian-3ubuntu1 pat OpenSSH*
debug1: match: OpenSSH_6.0p1 Debian-3ubuntu1 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT 发送
debug1: SSH2_MSG_KEXINIT sent
debug1:收到 SSH2_MSG_KEXINIT
debug1: SSH2_MSG_KEXINIT received
debug1:kex: server->client aes128-ctr hmac-md5 none
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1:kex:client->server aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1:SSH2_MSG_KEX_DH_GEX_REQUEST(1024
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1:期待 SSH2_MSG_KEX_DH_GEX_GROUP
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT 发送
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1:期待 SSH2_MSG_KEX_DH_GEX_REPLY
debug1: expecting 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: Server host key: RSA b6:b8:0e:e4:25:63:6d:64:a3:d6:6d:7f:46:85:72:0d
debug1: 在没有端口标识符的情况下进行检查 [1.2.3.4]:PORT 没有已知的 RSA 主机密钥并且您已要求严格检查.主机密钥验证失败.
debug1: checking without port identifier No RSA host key is known for [1.2.3.4]:PORT and you have requested strict checking. Host key verification failed.
致命:无法从远程存储库读取.
fatal: Could not read from remote repository.
请确保您拥有正确的访问权限和存储库存在.
Please make sure you have the correct access rights and the repository exists.
SSH Known Hosts 文件路径位于/Library/Server/Xcode/Config/ssh_known_hosts
SSH Known Hosts file path is located at /Library/Server/Xcode/Config/ssh_known_hosts
SSH 严格的主机检查已启用(您可以通过编辑禁用此功能
SSH strict host checking is enabled (you can disable this by editing the
SSHStrictHostKeyChecking key in/Library/Server/Xcode/Config/xcsbuildd.plist
SSHStrictHostKeyChecking key in /Library/Server/Xcode/Config/xcsbuildd.plist
不受信任的 HTTPS证书被禁用(您可以通过编辑启用它
Untrusted HTTPS certificates is disabled (you can enable this by editing the
TrustSelfSignedSSLCertificates 键入/Library/Server/Xcode/Config/xcsbuildd.plist
TrustSelfSignedSSLCertificates key in /Library/Server/Xcode/Config/xcsbuildd.plist
我认为权限存在问题,但在我的/var 中有一些具有不同权限的目录,当然没有团队服务器文件夹...
I assume that there is a problem with permissions but in my /var there are some directories with different permissions and of course there is no teams server folder...
所以我不知道如何设置适当的权限(不更改/var... 的其他子目录的权限).我可以尝试手动制作目录团队服务器",但不知道有什么权限......?你有什么想法吗?
So I don't know how to setup proper permissions (without changing permissions of other subdirectories of /var...). I can try manually make directory "teams server" but don't know with what permissions... ? Do you have any ideas?
出于测试目的,我使用 777 创建了 teamsserver 目录,但这并不能解决我的问题.日志看起来和之前的一样,只是没有一行:
For test purpose I've created teamsserver directory with 777 but that doesn't solve my problem. Logs looks the same as previous butjust WITHOUT line:
无法创建目录/var/teamsserver/.ssh".
有什么想法吗?
谢谢
推荐答案
好的,我花了一些时间,但我有一个解决方案...实际上有两个解决方案.羞于承认但阅读和理解日志足以解决问题(再次:P).
Ok, I took some time but I've a solution... Two solutions actually. Ashamed to admit but read and understand logs is enough to solve the problem (again :P).
第一个答案:
在安装 os x 服务器之前,我的服务器主机密钥已添加到 .ssh/known_hosts.服务器不使用已知主机的路径.正如日志所说,服务器使用:
My server host key was added to .ssh/known_hosts BEFORE installing os x server. Server does't use that path of known hosts. As log says server uses:
SSH Known Hosts 文件路径位于/Library/Server/Xcode/Config/ssh_known_hosts
在我的情况下,该文件是空的.所以要解决这个问题,将 known_hosts 复制到 ssh_known_hosts 就足够了:
and that file was empty in my case. So to solve the problem it is enough to copy known_hosts to 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.
Change SSHStrictHostKeyChecking to false.
又完成了.
这篇关于无法创建目录/var/teamsserver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!