使用SSH身份验证在Xcode 7中添加GitHub存储库时出现身份验证错误

4
我正在尝试在Xcode 7中设置机器人进行集成测试。 在设置此项时,我使用“Xcode>首选项>帐户>添加存储库...”向项目添加了远程存储库,但是出现了“身份验证失败”的消息并未成功:

enter image description here

使用此SSH密钥在命令行上可以在GitHub上工作,为什么Xcode 7不起作用?

2个回答

5

在认为这是Xcode 7的一个缺陷后,因为像这篇文章那样的帖子,我最终发现问题实际上是由GitHub引起的。

GitHub为组织和团队实施了第三方访问限制,这意味着在2014年2月之前生成的任何SSH密钥都将不再适用于新应用程序。 在组织的设置页面中查找此部分:

GitHub Organization Third-Party Access Settings

我生成了新的SSH密钥并上传它们,我的Xcode 7机器人使用SSH运行良好。


0

我遇到了一个类似的问题,无法让XCode进行身份验证,但是我的存储库托管在运行DSM 5.2的Synology NAS上,该NAS上有git-server运行。

我使用的是OSX 10.11上的XCode 7.1.1,尝试使用ssh://myUser@192.168.1.220:/volume1/git/myrepository.git连接到git时,会出现一个对话框“Failed to Start SSH session: Unable to exchange encryption keys(-1)”。

如果您在nas /etc/ssh/sshd_config上启用日志记录

SyslogFacility USER 
LogLevel DEBUG

然后重新启动SSH服务(在Synology Web前端),然后您可以检查/var/log/messages中发生了什么(例如使用nano /var/log/messages,然后按ctrl+w,ctrl+v跳转到文件末尾,它很长)。它会报告类似于以下内容:

mynas sshd[24182]: fatal: no matching mac found: client hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,hmac-ripemd160@openssh.co$

基本上客户端和NAS无法就使用哪种'HMAC'算法达成一致。因此,让我们在NAS上添加一个(可能会降低安全性,但据我所知,我们无法在xcode端进行更改):

以root身份登录NAS,编辑/etc/sshd/sshd_config文件,在带有MACs: xxx的行末尾添加"hmac-sha1"(警告:强烈建议首先创建备份,如果您打错了字,可能会失去对该盒子的SSH访问!但是您仍然可以使用“Telnet”(在NAS的Web前端启用它)并使用备份。该行将如下所示:

MACs hmac-sha2-256,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com,umac-128@openssh.com,hmac-sha1

重新启动SSH服务,然后使用XCode重试访问git,并再次检查日志。

Nov 29 17:30:59 mynas sshd[31077]: fatal: Unable to negotiate a key exchange method [preauth]

因此,请登录您的NAS,再次编辑sshd_config文件,并在Kexalgorithms行的末尾添加“diffie-hellman-group1-sha1”(猜测是一个不错的选择:p):

KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group1-sha1

好的,再次启动SSH服务,然后尝试使用XCode登录。

现在它可以工作了。

免责声明:我不是Linux专家,所以可能有更好的方法来解决这个问题。此外,这会降低您NAS的安全性,因为您接受了较不安全的算法...但至少它可以工作,如果有更好的想法,我很乐意听取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接