首页 > 其他分享 >git-2_34_1访问服务器报Permission-denied(publickey)

git-2_34_1访问服务器报Permission-denied(publickey)

时间:2022-10-26 13:14:28浏览次数:84  
标签:git Permission rsa 34 算法 ssh 版本 com

起因

近期 git 更新了最新的 2.34.1 版本,好多小伙伴突然发现无法访问服务器。

git pull 的时候命令行会提示

 [email protected]:  Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

莫名的提示,我还以为 git 版本有问题。

注意:Mac​ 更新到 Ventura13.0​ 也会有此问题。因为 git​ 随着系统升级到了 2.32.1​ 。

➜  .ssh cd ~/
➜  ~
➜  ~ git --version
git version 2.32.1 (Apple Git-133)

原因

GIT 2.33.1 版本集成了最新的 OpenSSH v8.8p1 版本,此版本放弃了历史相当悠久的 rsa-sha1 的支持。 当我们习惯于用命令行

 ssh-keygen -t rsa -C "[email protected]"

来创建密钥的时候,要小心了,以后不再支持。

SHA-1 哈希算法,此前被发现构造前缀碰撞攻击成本已降至低于 5 万美元(实际为 4.5 万美元),因此 OpenSSH 开发团队决定从 8.2 版本禁用 ssh-rsa 公钥签名算法。有一些更好的算法可以替代,包括 RFC8332 RSA SHA-2 签名算法 rsa-sha2-256/512、ssh-ed25519 签名算法与 RFC5656 ECDSA 算法。目前这些算法在 OpenSSH 中都已经支持。

值得注意的是,一般情况下,如果服务器 OpenSSH 版本大于等于 7.2 ,那么已经支持 ssh-rsa2-256/512 ,用户无需做额外的处理。但是如果服务器版本仍然比较低,就需要更换密钥。

解决方法

方法 1

如果你急需访问仓库,而暂时不想修改密钥,可以 在密钥所在的 .ssh 目录下的 config 文件(没有的话自行创建)添加如下配置即可访问。

 Host git.xxx.com
 HostkeyAlgorithms +ssh-rsa 
 PubkeyAcceptedAlgorithms +ssh-rsa

修改后的配置

 Host git.xxx.com
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_mac
   HostkeyAlgorithms +ssh-rsa
   PubkeyAcceptedAlgorithms +ssh-rsa

方法 2

重新生成更安全的密钥。 在生成之前,要确定服务器是否支持相应的密钥加密算法。 使用 ECDSA 或者 ED25519 算法替代 RSA 以一个不错的选择

 ssh-keygen -t ed25519 -C "[email protected]"

参考文章

https://confluence.atlassian.com/bitbucketserverkb/ssh-rsa-key-rejected-with-message-no-mutual-signature-algorithm-1026057701.html

https://git-scm.com/docs/gitfaq#_credentials

方法 3

回滚 git 到 2.32 版本。

文章更新历史
2022-08-30 feat:初稿。

2022-10-26 feat:新增Mac更新场景。

标签:git,Permission,rsa,34,算法,ssh,版本,com
From: https://www.cnblogs.com/tangyouwei/p/git2_34_1-access-server-newspaper-permissiondenied-pu

相关文章

  • git-2_34_1访问服务器报Permission-denied(publickey)
    起因近期git更新了最新的2.34.1版本,好多小伙伴突然发现无法访问服务器。gitpull的时候命令行会提示 [email protected]:Permissiondenied(publickey,gssapi-......
  • Gitea 1.18 功能前瞻(其二):文件树导航、基于 YAML 格式创建的工单模板、在多种语言的 RE
    Gitea1.18的发布日期临近了,这里收集并展示了一些新版本中的前端界面新特性。1.我们在代码评审页面的侧边栏引入了树形结构的文件导模块当你打开合并请求-文件变动......
  • git 配置ssh方式clone 和pull 代码
    gitclone代码有两种方式一种以https开头的地址,首先clone代码是输入用户名和密码,pull代码有时候需要重新输入用户名和密码一种以ssh开头的地址,这种方式是在local生成k......
  • P2343 宝石管理系统
    #include<iostream>usingnamespacestd;#defineN100000+10000+1namespaceSplay{structnode{intson[2],siz,cnt,fa,k;......
  • 如何使用GitHub Actions发布自己的爬虫代码
    一.从上一篇GitHubActions详解了解了GitHubActions,我们理一下使用GitHubActions详解发布爬虫需要哪几个步骤上传爬虫代码到GitHub仓库创建GitHubActions工作流,并提......
  • 934. 最短的桥
    Problem:934.最短的桥目录思路解题方法复杂度Code思路基础解题思路:针对岛问题的解决方法有一种通用的解,就是对上、下、左、右各个方向进行查找,判断其是否为1......
  • IDEA 集成 Git
    1配置Git忽略文件1)创建忽略规则文件git.ignore#Compiledclassfile*.class#Logfile*.log#BlueJfiles*.ctxt#MobileToolsforJava(J2ME).mtj.tmp/......
  • 如何从github通过本地git工具下载代码
    1.本地安装git软件Git-2.35.1.2-64-bit.exe 官网地址 https://git-scm.com/2.配置本地git信息设置用户名和邮箱(与github中保持一致)gitconfig--globaluser.email"......
  • Git 远程仓库操作
    gitremote-v查看当前所有远程地址别名gitremoteadd别名远程地址起别名gitpush别名分支推送本地分支上的内容到远程仓库gitclone远程地址将远程仓库的内......
  • github 突然报 Connection closed?
    今天gitpull突然报错连不上了。Connectionresetby20.205.243.166port22fatal:Couldnotreadfromremoterepository.Pleasemakesureyouhavethecorr......