【问题标题】:git@gitee.com: Permission denied (publickey), not a common problem, to be solvedgit@gitee.com:权限被拒绝(publickey),不是常见问题,待解决
【发布时间】:2022-01-16 20:02:14
【问题描述】:

关于publickey:我在一年前配置过,效果很好!

但是,我不能 push 到昨天的任何 gitee 存储库。

权限被拒绝(公钥)

但它在 github 中运行良好?! (我确定我使用的是相同的公钥,并且是之前添加的)

运行 $ ssh -Tvvv git@gitee.com 后,我收到以下消息:

# other infos
debug1: Trying private key: /c/Users/57715/.ssh/id_dsa
debug3: no such identity: /c/Users/57715/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /c/Users/57715/.ssh/id_ecdsa
debug3: no such identity: /c/Users/57715/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /c/Users/57715/.ssh/id_ecdsa_sk
debug3: no such identity: /c/Users/57715/.ssh/id_ecdsa_sk: No such file or directory
debug1: Trying private key: /c/Users/57715/.ssh/id_ed25519
debug3: no such identity: /c/Users/57715/.ssh/id_ed25519: No such file or directory
debug1: Trying private key: /c/Users/57715/.ssh/id_ed25519_sk
debug3: no such identity: /c/Users/57715/.ssh/id_ed25519_sk: No such file or directory
debug1: Trying private key: /c/Users/57715/.ssh/id_xmss
debug3: no such identity: /c/Users/57715/.ssh/id_xmss: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
git@gitee.com: Permission denied (publickey).

我整天都在寻找这个答案,有人可以帮助解决这个棘手的问题吗?

非常感谢!

【问题讨论】:

  • 可能是 gitee 撤销了某些 RSA 密钥。不过,你需要问问 gitee 的人。
  • 请不要发布代码和输出的截图,而是实际的文本。
  • @Nils Werner 嗯,我会注意的!
  • @torek 是的!没错,我找到了一篇关于“为什么 RSA-SHA1 在 gitee 中不起作用”的文章。它正确地显示了我的答案!
  • @Nils Werner 我发代码截图的原因是当我使用实际文本时,代码被标记为可疑垃圾邮件~

标签: git ssh


【解决方案1】:

首先,如果这在以前有效,则意味着您在多个目标之间共享一个 SSH 密钥,这不是一个好的做法。

如“Generate/add SSH public key”中所述,我将生成一个专用于 gitee 访问/身份验证的新密钥

cd %USERPROFILE%\.ssh
ssh-keygen -t ed25519 -C  "xxxxx@xxxxx.com"  -P "" -f gitee

请注意此处推荐的协议:ed25519。 rsa 可能不再被允许。

复制生成的ssh密钥,通过仓库首页的“管理”->“部署公钥管理”->“添加部署公钥”将生成的公钥添加到仓库中。

然后创建一个%USERPROFILE%\.ssh\config 文件,其中包含:

Host gitee.com 
HostkeyAlgorithms +ssh-rsa 
PubkeyAcceptedAlgorithms +ssh-rsa

测试这是否适用于ssh -T git@gitee.com

最后,在本地存储库的根文件夹中:

git remote set-url origin giteee:<me>/<myProject>

【讨论】:

  • 我试过了,但没用。感谢您的回答,我终于解决了。它启发了我。只是像你说的那样在~/.ssh/ 目录中创建一个config 文件。但内容有点不同。 Host gitee.com HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa 非常感谢!家伙!我编辑了,你可以看看~
  • 这是我第一次提问。我是新来的,刚刚获得了 15 点声望。我现在给你一个赞成票并接受它。我仍在研究如何使用这个社区。谢谢~
  • @Wu-Yikun 你明白了。欢迎使用 Stack Overflow。
【解决方案2】:

如果你第一次尝试ed25519,可能会添加

Host gitee.com
    IdentityFile ~/.ssh/id_ed25519

到 ~/.ssh/config 应该可以工作。

【讨论】: