远方的灯塔 - 专注于服务端技术分享 远方的灯塔 - 专注于服务端技术分享
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)

Terwer Green

一个后端老菜鸟
首页
  • Java SE
  • Struts2
  • Hibernate
  • MyBatis
  • JAX-WS
  • 并发
  • 分布式
  • Git
  • 文章分类
  • 文章标签
  • 文章归档
  • 《C程序设计语言》
心情随笔
友情链接
给我留言 (opens new window)
关于我
GitHub (opens new window)
  • 源代码管理

  • 开发效率

    • 使用vagrant搭建可移植的跨平台的开发环境
    • Vagrant搭建可移植的CentOS7环境
    • 在WSL2的Linux中安装和运行IntelliJ IDEA
    • 在WSL2上安装xfce桌面以及中文开发环境的配置
    • WSL2安装MySQL8.0和redis
    • 将WSL的2204版本的ununtu滚动升级版本升级到到2204
    • git-2_34_1访问服务器报Permission-denied(publickey)
      • 起因
      • 原因
      • 解决方法
        • 方法 1
        • 方法 2
        • 方法 3
    • 阿里云安装桌面环境及VNC连接
    • Ubuntu2204安装MySQL5_7
    • 终于解决了困扰多天的普通用户不能启动WSL2的ubuntu的xfce4桌面问题
    • WSL2在WSLG下面GUI应用程序的DPI分辨率模糊的问题
    • docker的centos7中IDEA中文
    • 在WSL2的Oracle Linux8_5发行版中安装xfce4
    • 探索一下WSL上Ubuntu的包管理工具
    • 在ubuntu中,升级emacs到最新版本(非源码安装)
    • 使用vnc远程ubuntu.md
    • Parallels Desktop安装Fedora34并切换Xfce Desktop桌面环境
    • Rocky Linux 8.6安装中文输入法
    • Parallels Desktop从零开始安装CentOS7
    • openEuler2203移除旧的lernel
    • Github-Actions使用release-please实现自动发版
  • 知识管理

  • 开发流程
  • 开发效率
terwer
2022-10-26
目录

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

# 起因

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

git pull 的时候命令行会提示

 git@git.xxxxx.com:  Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
1

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

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

➜  .ssh cd ~/
➜  ~
➜  ~ git --version
git version 2.32.1 (Apple Git-133)
1
2
3
4

# 原因

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

 ssh-keygen -t rsa -C "your_email@example.com"
1

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

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
1
2
3

修改后的配置

 Host git.xxx.com
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_mac
   HostkeyAlgorithms +ssh-rsa
   PubkeyAcceptedAlgorithms +ssh-rsa
1
2
3
4
5

# 方法 2

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

 ssh-keygen -t ed25519 -C "your@example.email"
1

参考文章

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

https://git-scm.com/docs/gitfaq#_credentials (opens new window)

# 方法 3

回滚 git 到 2.32 版本。

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

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

编辑 (opens new window)
#版本#算法#密钥#支持#服务器#git#permission#deny
上次更新: 2023/02/22, 13:47:25
将WSL的2204版本的ununtu滚动升级版本升级到到2204
阿里云安装桌面环境及VNC连接

← 将WSL的2204版本的ununtu滚动升级版本升级到到2204 阿里云安装桌面环境及VNC连接→

最近更新
01
解决css部分border被圆角切掉之后圆角的边框消失问题
03-18
02
使用TypeScript开发一个自定义的Node-js前端开发脚手架
03-08
03
Github-Actions使用release-please实现自动发版
03-06
更多文章>
Theme by Vdoing | Copyright © 2011-2023 Terwer Green | MIT License | 粤ICP备2022020721号-1 | 百度统计
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式