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

Posted

技术标签:

【中文标题】Atlassian Stash - 权限被拒绝(公钥)【英文标题】:Atlassian Stash - Permission Denied (publickey) 【发布时间】:2015-08-26 11:01:55 【问题描述】:

我实际上正在为我的 Workplace 设置 Atlassian Stash。我遇到了这个我无法解决的问题。请注意,这是在 Windows 7 64 位安装上运行的。

在设置 SSH 密钥时,我按照 Stash Guide 中的说明创建它们并将它们设置到我的帐户中。尽管如此,这里遇到的问题并不是真正的字面意思,因为它似乎不接受密钥。 (在 Stash 中创建的两个用户都是管理员,并且对所有存储库都具有管理员权限。)

执行简单的克隆命令时,我收到此错误:

$ git clone ssh://git@localhost:7999/test/test.git 克隆到“测试”... 权限被拒绝(公钥)。 致命:无法从远程存储库中读取。 请确保您拥有正确的访问权限 并且存储库存在。

我按照 Atlassian 网站上文档区域中的步骤进行操作,但仍然无法正常工作。

Git Operations Fail - Permission denied - publickey

Permission denied (publickey)

$ ssh -p 7999 -I ~/.ssh/id_rsa -vT git@localhost OpenSSH_6.6.1,OpenSSL 1.0.1m 2015 年 3 月 19 日 debug1:连接到 localhost [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 type 1 debug1:身份文件 /c/Users/Webit-Alex/.ssh/id_rsa-cert type -1 debug1:身份文件/c/Users/Webit-Alex/.ssh/id_dsa type -1 debug1:身份文件 /c/Users/Webit-Alex/.ssh/id_dsa-cert type -1 debug1:身份文件 /c/Users/Webit-Alex/.ssh/id_ecdsa type -1 debug1:身份文件 /c/Users/Webit-Alex/.ssh/id_ecdsa-cert type -1 debug1:身份文件/c/Users/Webit-Alex/.ssh/id_ed25519 type -1 debug1:身份文件 /c/Users/Webit-Alex/.ssh/id_ed25519-cert type -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 调试1:kex:服务器->客户端aes128-ctr hmac-md5无 调试1:kex:客户端->服务器aes128-ctr hmac-md5无 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:1 中找到密钥 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:没有更多的身份验证方法可以尝试。 权限被拒绝(公钥)。

是否有人有解决方案或愿意帮助让 Stash 正常工作?

【问题讨论】:

我建议通过 support.atlassian.com 联系我们的支持团队,他们可以仔细查看。 【参考方案1】:

我遇到了同样的问题,但尝试访问远程主机而不是本地主机。奇怪的是,它在前一天晚上运行良好。我得到了与原始海报完全相同的错误。最后,我删除了存储服务器上的所有 SSH 密钥,并重新添加了我以前的 id_rsa.pub 密钥。我又试了一次,效果很好。要么我的 SSH 密钥在存储服务器上损坏,要么存储服务器无法加载我的密钥 - 无论哪种方式重新添加它都可以解决问题。

【讨论】:

【参考方案2】:

检查您的 ssh 密钥是否在 /.ssh/id_rsa/.ssh/id_rsa.pub 中,有时它可能会消失或出现其他问题。

您可以使用 this instruction 更新和重置 ssh 密钥

【讨论】:

【参考方案3】:

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

【讨论】:

感谢您的回答。您能否指出我在哪里可以找到这些信息(auth.log 和 journalctl)的正确方向。我已经尝试查找日志文件,但我无法这样做(此处为 Windows 环境)并且 journalctl 不是有效命令(正如我的 Git Bash 提示符告诉我的那样)。再次感谢您! 要查找sshd日志,错误信息有助于调试。我不知道系统存储正在运行,所以我给了你两种最可能的方法来找到所说的日志。详细了解他们的系统或联系他们的支持。 这些文件与 Stash 无关,它在端口 7999 上运行自己的 SSHD @Rog 这可以解释为什么它如此古老以至于它不接受 ecdsa 密钥。 服务器确实接受 ECDSA 密钥,但我们(Stash 团队)需要更新密钥验证以接受配置中的公钥。我们正在努力。同时,这表明提问者尝试使用的不是 ECDSA 密钥对。

以上是关于Atlassian Stash - 权限被拒绝(公钥)的主要内容,如果未能解决你的问题,请参考以下文章

sh Atlassian Stash安装

ini 用于管理Atlassian Stash应用程序的Ubuntu Upstart脚本

atlassian账号怎么注册?

在 Atlassian Bamboo 中,我如何将我的脚本指向 Stash Repo 中的文件?

Atlassian Jira:拒绝故事的最佳实践? [关闭]

列出分支的 git/stash 拉取请求