首页/技术分享/
MacOS升级Ventura后git拉取项目提示输入密码问题
MacOS升级Ventura后git拉取项目提示输入密码问题

问题描述

升级到 macOS Ventura 后,在公司内网通过 ssh 的方式拉取代码时,提示需要输入密码,检测提示:

debug1: send_pubkey_test: no mutual signature algorithm
debug1: Trying private key: /Users/mengmian/.ssh/id_ecdsa
debug1: Trying private key: /Users/mengmian/.ssh/id_ecdsa_sk
debug1: Trying private key: /Users/mengmian/.ssh/id_ed25519
debug1: Trying private key: /Users/mengmian/.ssh/id_ed25519_sk
debug1: Trying private key: /Users/mengmian/.ssh/id_xmss
debug1: Trying private key: /Users/mengmian/.ssh/id_dsa
debug1: Next authentication method: password

定位问题

  1. 之前升级遇到过同类问题,以为是权限问题,重新赋予 ssh 文件权限,发现无用。

  2. 猜测可能是 git 或 ssh 升级了,改动了什么东西。发现 macOS Ventura 内置使用了 OpenSSH_9.0p1,根据 OpenSSH 发行说明 可以得知,从 OpenSSH 8.8/8.8p1 版本开始,就默认关闭了 ssh-rsa 算法。那么 macOS Ventura 内置使用的 OpenSSH_9.0p1 也是默认关闭了 ssh-rsa 算法。

 

解决方案

  1. 使用ed25519算法重新生成密钥,配置到对应的gitlab上。

ssh-keygen -t ed25519 -C "your_email@example.com"

把新的公钥信息到账号的SSH-Key里。

  1. 让重新支持 RSA/SHA1

修改~/.ssh/config 文件(不存在的话则新增此文件:

# 文件的顶部新增2行:  
HostkeyAlgorithms +ssh-rsa  
PubkeyAcceptedAlgorithms +ssh-rsa

保存即可。

更换公钥成本太大的话,建议使用第两种方法。

你可能感兴趣的
深入浅出GO语言(五):Go语言基础数据类型全解析
大家好!欢迎来到本期的深入浅出解析GO系列。今天,我们将全面探讨Go语言中的基础数据类型,它们构成了我们编写高效、稳定代码的基础。
深入浅出Go语言(四):变量与常量的奥秘
在编程的世界里,变量和常量就像是魔法师的魔法棒,它们帮助我们操控数据,实现各种功能。而在Go语言中,这两根魔法棒有着它们独特的魅力和规则。今天,就让我们一起揭开它们的神秘面纱,探索变量与常量的奥秘吧!
深入浅出Go语言(三):编写并运行第一个 Go 程序
对于许多编程新手和专业人士来说,踏入Go语言(也称为Golang)的世界往往是一个令人兴奋的新旅程。Go语言以其简洁、高效和强大的并发处理能力而闻名,正逐渐成为构建现代软件的首选工具之一。今天,我们将一起迈出这个旅程的第一步:编写并运行你的第一个Go程序,同时深入了解Go的编译过程。
深入浅出Go语言(二):Go语言开发工具推荐
在Go语言的学习和开发过程中,选择一款合适的开发工具可以极大地提升编程效率。今天,我们将为大家推荐几款常用的Go语言开发工具,无论你是新手还是专家,都能在这里找到适合你的工具。