【问题标题】:unable to git clone a diffusion repository over ssh无法通过 ssh git 克隆扩散存储库
【发布时间】:2016-08-17 06:46:12
【问题描述】:

我已经按照https://secure.phabricator.com/book/phabricator/article/diffusion_hosting/https://gist.github.com/sparrc/b4eff48a3e7af8411fc1 中提到的步骤在我的云 ubuntu 服务器中使用扩散设置了一个带有 git 存储库托管的 phabricator 实例

我可以在我的 phabricator 网站的扩散部分看到存储库。我还可以看到克隆 ssh URL,但是当我尝试从客户端实际克隆 repo 时,我看到以下内容:

$ git clone ssh://ph-git@pm.example.com:2222/diffusion/GPSCLJ/gps_v1.git gps

Cloning into 'gps'...
Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我已将我的公钥上传到我的 phabricator 帐户

我对@9​​87654323@ 中提到的一般设置还有其他疑问。 /* 此处不复制疑问,因为疑问的上下文在 github 要点中 */

================================

嘿@CEPA 感谢您的回复(在这里编辑,因为如果我回复您的评论,我无法格式化我的观点)

  • 我在克隆 url 中看到 2222,因为我已经明确地完成了“./bin/config set diffusion.ssh-port 2222”。在执行“./bin/config delete diffusion.ssh-port”之后,我再也看不到它了
  • 但是,我确实在克隆 URL 中看到了“git@...”
  • 此外,如果我在克隆时在 URL 中使用 2222,它会使用我的密钥(无论我是否使用“git@”)
  • 但如果我不使用 2222,那么它会在我使用“git@”时询问密码,并且如果我不使用“请确保....”则失败

【问题讨论】:

    标签: git ssh git-clone phabricator


    【解决方案1】:

    来自GitHub thread

    此外,我在网站上为我的用户添加了公钥,但在执行 ssh 时,我们使用“git”用户。这是怎么绑定的?

    它不应该“捆绑”。 ssh 正在~/.ssh/authorized-keys 中寻找您的公钥。如果~ 代表一个从未包含您的公钥的家庭帐户,您将无权使用该帐户通过 ssh 连接到远程计算机。

    【讨论】:

      【解决方案2】:

      你的克隆 URL 真的有端口吗?

      通常当我看到来自 Phabricator 的克隆 URL 时,它们使用默认的 SSH 端口 (22),因此不需要在克隆 URL 中。这意味着 SSHD 通常设置为监视不同的端口(如 2222),因此当您尝试连接到 Phabricator 服务器时,您需要指定端口。

      您的设置可能有所不同,但这就是我们使用我们的设置的方式(SSHD -> 2222 和 Git -> 22)。我希望这会有所帮助。

      对于我们的diffusion.ssh-port,我们将其设置为空(默认为 22)。您可以通过转到您的 Phabricator 实例并转到:<Base_URL>/config/edit/diffusion.ssh-port/

      来设置它

      对于 SSHD 设置,我们编辑了 /etc/ssh/sshd_config 以将 port 22 更改为 port 2222

      我已经很久没有设置这个了。据我记得,我们关注的是these directions

      【讨论】:

      • 感谢您的回复 :) 您能解释一下您执行的步骤吗?具体来说,SSHD -> 2222 和 GIT -> 22 位
      • 我已经更新了我的回答来回答你的问题。我希望这会有所帮助。我设置这个已经快 3 年了,所以我对这个主题的记忆不是很清楚。我应该提到我们这样做,因为它提到 here 你将运行 2 个 sshd 服务。一个带有 Phabricator 配置(我们位于 /opt/sshd_phab/sshd_config.phabricator)和一个带有 /etc/ssh/sshd_config
      • 感谢您的解释和链接。但是,正如我更新的答案中所说,我已经删除了 ssh-port 的配置,并且它停止显示在克隆 URL 中。但如果我不使用克隆 URL 中的端口,那么它会询问我 git 的密码。我的设置也使用了相同的 wiki。无论如何,我要清理扩散集成并重试。谢谢你的帮助:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 2011-05-24
      • 2023-01-11
      • 1970-01-01
      • 2012-02-28
      • 2014-10-19
      相关资源
      最近更新 更多