无法创建目录 /var/teamsserver

Posted

技术标签:

【中文标题】无法创建目录 /var/teamsserver【英文标题】:Could not create directory /var/teamsserver 【发布时间】:2013-11-06 16:16:51 【问题描述】:

我已经在我的 mac 上安装了 os x server (Mavericks) 并且想添加 bot.由于某些原因,我的远程仓库位于其他外部服务器上,我可以通过指定端口上的用户名和密码访问它。我已经像这样向 os x 服务器添加了远程 repo:

ssh://1.2.3.4:PORT/path/to/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 日调试 1:读取

配置数据 /etc/ssh_config debug1: /etc/ssh_config line 20:

为 * debug1 应用选项:连接到 1.2.3.4 [1.2.3.4] 端口 PORT。

debug1:连接已建立。

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

debug1:身份文件 /var/teamsserver/.ssh/id_rsa type -1

debug1:身份文件 /var/teamsserver/.ssh/id_rsa-cert type -1

debug1:身份文件 /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 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

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: 在没有端口标识符的情况下进行检查 [1.2.3.4]:PORT 没有已知的 RSA 主机密钥 并且您已要求严格检查。主机密钥验证失败。

致命:无法从远程存储库读取。

请确保您拥有正确的访问权限和存储库 存在。

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

SSH 严格的主机检查 已启用(您可以通过编辑禁用此功能

SSHStrictHostKeyChecking key in /Library/Server/Xcode/Config/xcsbuildd.plist

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

TrustSelfSignedSSLCertificates 键入 /Library/Server/Xcode/Config/xcsbuildd.plist

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

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

编辑:出于测试目的,我使用 777 创建了 teamsserver 目录,但这并不能解决我的问题。日志看起来和之前的一样,只是没有一行:

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

有什么想法吗?

谢谢

【问题讨论】:

【参考方案1】:

在尝试对受 ssh 密钥对保护的 github 存储库运行 git 命令时,我遇到了与方案操作构建脚本类似的问题。

机器人使用 _teamsserver 系统帐户运行构建。正如您所发现的,这些帐户默认情况下没有主目录。要设置构建以访问和修改其主目录,我在以下方面取得了成功(您的里程可能会有所不同):

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

HTH

【讨论】:

感谢您的建议,但正如我所写的那样,它没有帮助:/。这些行仍然存在问题: debug1:身份文件/var/teamsserver/.ssh/id_rsa type -1 debug1:身份文件/var/teamsserver/.ssh/id_rsa-cert type -1 debug1:身份文件/var/teamsserver /.ssh/id_dsa type -1 debug1: 身份文件 /var/teamsserver/.ssh/id_dsa-cert type -1 此外,我已将 id_rsa 添加到 /var/teamsserver/.ssh 但它仅在以下方面有所帮助: debug1: identity文件 /var/teamsserver/.ssh/id_rsa 类型 1(不是以前的 -1)...仍在寻找解决方案... 谢谢@user1132570。上面的脚本确实解决了目录问题。【参考方案2】:

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

第一个答案:

在安装 os x 服务器之前,我的服务器主机密钥已添加到 .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

就这么简单。

第二个答案:

根据再次登录

SSH 严格主机检查已启用(您可以通过编辑禁用此功能 /Library/Server/Xcode/Config/xcsbuildd.plist 中的 SSHStrictHostKeyChecking 键

将 SSHStrictHostKeyChecking 更改为 false。

又完成了。

【讨论】:

这个答案和上面 user1132570 的答案都为我解决了这个问题。因此,如果此答案不能为您解决问题,请务必检查 /var/teamsserver 是否存在。 这对我不起作用。两者都做了,仍然抱怨无法从 /var/teamsserver 创建目录。 您是否尝试过手动处理它? user1132570 建议的方式足以以适当的权限创建它。 我已经尝试了所有 3 个答案,但仍然没有运气。 debug1:提供 RSA 公钥:/Library/Server/Xcode/Data/BotRuns/BotRun-a28db5fc-1932-47a0-a528-f52c75e421e2.bundle/credentials/65885363-194e-454b-a3ce-56dcaaf5d3c9/id_rsa debug1:可以验证继续:publickey debug1:没有更多的身份验证方法可以尝试。权限被拒绝(公钥)。致命:无法从远程存储库中读取。 您能否使用您的密钥通过 ssh 访问服务器(这样您就无需输入密码)?也许您没有在已知密钥列表中添加密钥?【参考方案3】:

如果您已尝试上述方法但仍然收到权限被拒绝错误,则您可能没有对该文件/目录的正确权限。

你以谁的身份运行? $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)

【讨论】:

【参考方案4】:

我做了 3 件事来解决这个问题,尽管我不确定其中哪一个解决了问题:

    将我项目中的所有 git 存储库更改为使用 HTTPS 而不是 SSH (git) 版本的 url 根据机器人源代码控制日志中的说明禁用 SSHStrictHostKeyChecking。 根据日志中的相同说明启用 TrustSelfSignedSSLCertificates。

如果这对您来说是个问题,请查看https://discussions.apple.com/thread/5586872。

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

【讨论】:

以上是关于无法创建目录 /var/teamsserver的主要内容,如果未能解决你的问题,请参考以下文章

无法创建目录或文件?急急急啊!!

Wordpress 插件安装:无法创建目录

无法创建目录错误

无法创建示例数据目录 - Android Studio

无法使用 ebextension 命令创建目录

无法为Google云端硬盘创建令牌目录