Atlassian Stash - 权限被拒绝(公钥)

4
我正在为我的工作场所设置Atlassian Stash。然而,我遇到了一个问题,无法解决。需要注意的是,这是在Windows 7 64位系统上运行的。
在设置SSH密钥时,我按照Stash指南创建并将它们设置到了我的账户中。但是,遇到的问题并不是字面意思,因为它似乎无法接受该密钥。(在Stash中创建的两个用户都是管理员,并且对所有存储库都有管理员权限。)
当执行简单的克隆命令时,我会收到以下错误信息: $ git clone ssh://git@localhost:7999/test/test.git Cloning into 'test'... Permission denied (publickey). fatal: Could not read from remote repository.
请确保您拥有正确的访问权限,并且存储库存在。
我按照Atlassian网站上文档区域中的步骤进行了操作,但仍无法使其正常工作。 Git Operations Fail - Permission denied - publickey

权限被拒绝(公钥)

$ ssh -p 7999 -I ~/.ssh/id_rsa -vT git@localhost OpenSSH_6.6.1,OpenSSL 1.0.1m 19 Mar 2015 debug1:连接到本地主机[127.0.0.1]端口7999。 debug1:已建立连接。 dlopen /c/Users/Webit-Alex/.ssh/id_rsa 失败:dlopen:Win32错误126 debug1:标识文件/c/Users/Webit-Alex/.ssh/id_rsa类型1 debug1:标识文件/c/Users/Webit-Alex/.ssh/id_rsa-cert类型-1 debug1:标识文件/c/Users/Webit-Alex/.ssh/id_dsa类型-1 debug1:标识文件/c/Users/Webit-Alex/.ssh/id_dsa-cert类型-1 debug1:标识文件/c/Users/Webit-Alex/.ssh/id_ecdsa类型-1 debug1:标识文件/c/Users/Webit-Alex/.ssh/id_ecdsa-cert类型-1 debug1:标识文件/c/Users/Webit-Alex/.ssh/id_ed25519类型-1 debug1:启用协议2.0的兼容模式 debug1:本地版本字符串SSH-2.0-OpenSSH_6.6.1 debug1:远程协议版本2.0,远程软件版本SSHD-CORE-0.14.0 debug1:无匹配项:SSHD-CORE-0.14.0 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_ECDH_INIT debug1:期望SSH2_MSG_KEX_ECDH_REPLY debug1:服务器主机密钥:RSA 0e:58:0e:af:a8:a1:35:5b:5e:3c:ac:8a:50:af:13:a9 debug1:主机'[localhost]:7999'已知并匹配RSA主机密钥。 debug1:在/c/Users/Webit-Alex/.ssh/known_hosts中找到密钥。 debug1:ssh_rsa_verify:签名正确 debug1:发送SSH2_MSG_NEWKEYS debug1:期望SSH2_MSG_NEWKEYS debug1:接收SSH2_MSG_NEWKEYS debug1:服务器不允许漫游 debug1:发送SSH2_MSG_SERVICE_REQUEST debug1:接收SSH2_MSG_SERVICE_ACCEPT debug1:可以继续进行的身份验证:publickey debug1:下一个身份验证方法:publickey debug1:提供RSA公钥:/c/Users/Webit-Alex/.ssh/id_rsa debug1:可以继续进行的身份验证:publickey debug1:尝试私钥:/c/Users/Webit-Alex/.ssh/id_dsa debug1:尝试私钥:/c/Users/Webit-Alex/.ssh/id_ecdsa debug1:尝试私钥:/c/Users/Webit-Alex/.ssh/id_ed25519 debug1:没有更多的身份验证方法可尝试。 Permission denied (publickey)。
有人有解决方案或愿意帮助使Stash正常工作吗?

我建议您联系我们的技术支持团队,网址是support.atlassian.com,他们可以更仔细地查看。 - Rog
3个回答

1
我曾遇到过同样的问题,但是是尝试连接远程主机而不是本地。奇怪的是,前一晚它还能正常工作。我得到了与原帖作者完全相同的错误。最终,我删除了存储服务器上的所有SSH密钥,并重新添加了我的先前的id_rsa.pub密钥。我再次尝试,这次它能够正常工作。我的SSH密钥可能在存储服务器上损坏了,或者存储服务器未能加载我的密钥 - 无论哪种情况,重新添加都可以解决问题。

0

检查你是否拥有位于 /.ssh/id_rsa/.ssh/id_rsa.pub 的 ssh 密钥,有时它们可能会消失或出现其他问题。

你可以使用 这份指南 更新和重置 ssh 密钥。


-2

检查/var/log/auth.logjournalctl -u sshd以获取任何信息,例如密钥文件的无效权限。另一个常见错误也是在authorized_keys上打错字。


谢谢您的回答。您能指导我在哪里找到这些信息(auth.log和journalctl)吗?我尝试查找日志文件,但无法找到(我在Windows环境中)。而且journalctl不是有效的命令(我的Git Bash提示告诉我)。再次感谢! - Stéphane Desjardins-Larose
你想找到sshd日志,错误消息有助于调试。我不知道系统运行的存储位置,所以我给出了两种最可能找到该日志的方法。了解更多关于他们的系统或联系他们的支持部门。 - Reactormonk
这些文件与Stash无关,它在7999端口上运行自己的SSHD。 - Rog
@Rog 这就解释了为什么它如此古老,无法接受ecdsa密钥。 - Reactormonk
服务器确实接受ECDSA密钥,但我们(Stash团队)需要更新密钥验证以接受配置中的公钥。我们正在努力解决这个问题。同时,这表明提问者尝试使用的不是ECDSA密钥对。 - Rog

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