1

嗨,我一直在尝试从 XCode 4 访问我的 git 存储库。

使用命令行工具一切正常。我可以使用以下方法克隆我的仓库:

git clone git@example.com:somerepo.git

但在 XCode 中,尝试使用时:

ssh://git@example.com:somerepo.git

它只是一直要求我输入密码,我根本不想使用。

同样的事情发生在:

git://git@example.com:somerepo.git

除了我还收到“连接被拒绝:无法连接到套接字”错误消息。

知道如何解决这个问题吗?

4

7 回答 7

5

在 Xcode 4.2 中,以下位置字符串对我有用

ssh://git@example.com:22/somerepo.git

ssh://部分需要告诉 Xcode 应该使用哪个协议。由于 URL 现在包含一个方案,因此:22还需要端口说明符才能使 Git 满意。没有端口,我在命令行上收到以下(奇怪的)错误消息:“ssh:连接到主机端口 22:连接被拒绝”。

顺便说一句:当我在 Organizer 窗口中添加我的存储库时,Xcode 咕哝着“需要身份验证”,然后开始旋转活动指示器。尽管我能够立即克隆 repo,但我不得不重新启动 Xcode 以摆脱活动指示器。

于 2011-11-18T23:30:28.793 回答
2

我发现使用 ssh://git@git.mydomain.com/myrepo 有效。请注意,“git”是我用于 gitolite 的用户名(完全按照他们网站上的说明,为用户正确添加公钥),git.mydomain.com 是安装 gitolite 的主机名,“myrepo”是存储库的名称(它可以在最后为我添加“.git”)。

另一部分是确保您的 OpenSSH 密钥位于 ~/.ssh/id_rsa (私有;将其更改为 0600 否则它将不起作用)和 ~/.ssh/id_rsa.pub (公共;我不知道这是否是需要的,但我从不费心去检查)。

以上一直有效,没有“副作用”,至少对我来说......

于 2012-01-06T04:35:56.877 回答
1

XCode 4 在 ~/.ssh 目录中查找密钥对

您需要将公钥添加到远程存储库中的用户

然后 XCode 可以克隆存储库

于 2011-04-18T12:53:40.220 回答
1

至少对于 Xcode 4.2,您不需要指定协议。只需使用

git@example.com:somerepo.git

由于我发现此线程具有相似的症状但问题不同,因此我要补充一点,我忘记为新用户添加 gitosis 的密钥,所以我遇到了我认为与 Xcode 相关但实际上是 gitosis 配置的问题问题。

于 2011-11-28T21:30:37.177 回答
1

你应该确保你没有启用任何代理,因为它有时会导致目标在 xcode 中无法访问。

填写仓库名称后,必须检查仓库“类型”是否为 git,而不是 SVN,因为我发现 xcode 可以更改类型。

最后,您应该可以成功访问 repo。

于 2012-06-27T16:55:32.593 回答
1

我有自己的使用 GIT-SCM 的 GIT 服务器。

我尝试了 URLssh://user@git.mydomain.com:22/gitname.git并将私钥放入~/.ssh/user

CHMOD 至 0600

当我连接时,它要求我输入用户名和密码,但没有密码

于 2014-01-14T17:54:22.160 回答
0

通过git 协议克隆 Git 存储库(这是您在命令行中所做的)与使用ssh+git 协议(这是您在 XCode4 中首先尝试的)不同

$HOME/.ssh如果在您的目录中找不到公钥,则只有 ssh 会要求输入密码。
如果您可以访问服务器上的端口 9418,example.com则不需要 ssh 进行克隆(如果example.com服务器上设置了身份验证层,您可能需要它)

“无法连接套接字”错误是典型的防火墙/代理问题:请参阅Git 错误:致命:无法连接套接字(无效参数)

检查您的git config -l:XCode 4 可能不使用与您的 git 在命令行中使用的完全相同的设置。

于 2011-04-12T11:01:09.493 回答