【问题标题】:Xcode 9 Authentication fails pushing to Git ServerXcode 9 身份验证无法推送到 Git 服务器
【发布时间】:2018-01-08 23:47:08
【问题描述】:

我设置了一个私人远程 git 服务器(不是 GitHub)。

我可以毫无问题地从命令行执行所有操作。该服务器也适用于 IntelliJ。

我可以在 Xcode 中进行 PULL 更改。但神秘的是,即使两者都需要身份验证,我也无法推送更改。我正在使用 SSH。

我看过很多关于 Windows 身份验证、IIS 和其他特殊情况的帖子。但是我还没有看到任何关于能够拉而不是推的东西。而且我不知道 Xcode 可能会在哪里编写任何日志记录。在用户级别,它只是说身份验证失败。我正在使用 SSH(无证书)。

任何关于从哪里开始寻找的建议将不胜感激。

【问题讨论】:

  • “我可以毫无问题地从命令行执行所有操作”然后这样做。问题解决了。
  • Git 允许为获取(这是“拉”的主要部分)和推送配置不同的 URL——所有这些都与 同一个 repo 通信。所以我会开始验证这一点。首先尝试查看git remote -v 的输出。然后尝试弄清楚如何在 Xcode 中启用它执行的操作的一些调试输出,并尝试查看在这两种情况下它是如何调用 Git 的。

标签: xcode git


【解决方案1】:

为后代发布,但是:如果您使用基于密钥的身份验证,请检查您的 ssh 密钥。在我将 ssh 设置更改为使用 RSA 密钥之前,我一直在尝试让 Xcode 执行任何 git 操作。 ECDSA 不起作用。不确定任何其他密钥,但关于设置与 xcode 持续集成的苹果文档总是谈论 RSA 密钥,这是我的线索。

【讨论】:

    【解决方案2】:

    嗯,从两年前的 Xcode 7 开始,这似乎已经被打破了。

    解决方案(全部大写,因为这是唯一有效的方法)是将密码放在 git 服务器 URL 中。因此,您可以拥有功能或安全性——但不能两者兼得。显然 git config 的 Xcode 解析非常有缺陷。

    git config --edit
    

    对 git 服务器 URL 使用这种精确的语法(假设 ssh 没有证书)

    url = ssh://username:passwd@server/path/to/project.git
    

    丑陋但有效。

    【讨论】:

      猜你喜欢
      • 2012-08-19
      • 2021-02-05
      • 1970-01-01
      • 2013-07-13
      • 2016-05-16
      • 1970-01-01
      • 2013-10-25
      • 2020-11-24
      • 1970-01-01
      相关资源
      最近更新 更多