当前位置:   article > 正文

Mac升级Ventura 13.X后无法执行Git操作,显示无法连接到到仓库。_macos y ventura 13.5.1 无git

macos y ventura 13.5.1 无git

原因

原因可能为:升级系统后,Ventura系统附带OpenSSH_9.0p1禁用了基于SHA-1哈希算法的 RSA 签名。

https://www.droidwin.com/ssh-not-working-in-macos-ventura-fix/

用户可以终端查看当前openssh版本,该问题常见于>8.8版本时。

ssh -V
  • 1

解决方法:

1、在生成公钥的~/.ssh文件夹下,

vim config
  • 1

2、注意:config文件没有后缀,文件末尾中添加如下内容:

Host *
	HostkeyAlgorithms +ssh-rsa
	PubkeyAcceptedKeyTypes +ssh-rsa
  • 1
  • 2
  • 3

有些用户修改~/.ssh配置文件不生效的情况,可能是配置了Host的配置。可以尝试添加上述配置到系统/etc/ssh/ssh_config文件解决。

更推荐的秘钥加密形式

以上是rsa算法密钥的情况下的解决办法,现在更推荐ED25519算法来生成密钥。因为rsa有缺陷

1.查看已存在的SSH密钥

在生成新的 SSH 密钥前,请先确认是否需要使用本地已生成的SSH密钥,SSH 密钥对一般存放在本地用户的根目录下。

在你的计算机命令行中执行以下语句,判断是否已经存在本地公钥。如果返回一长串以 ssh-ed25519 或 ssh-rsa 开头的字符串, 说明已存在本地公钥,你可以跳过「生成 SSH 密钥」步骤。

算法类型公钥私钥命令
ED25519(推荐)id_ed25519.pubid_ed25519ssh-keygen -t ed25519
RSAid_rsa.pubid_rsassh-keygen -t rsa
ECDSAid_ecdsa.pubid_ecdsassh-keygen -t ecdsa

Linux、Mac 可以直接使用以下命令查看已生成的公钥,Windows 用户在 WSL(需要 windows10 或以上)或 Git Bash下使用以下命令查看已生成公钥:

ED25519 算法

cat ~/.ssh/id_ed25519.pub
  • 1

RSA 算法

cat ~/.ssh/id_rsa.pub
  • 1

ECDSA 算法

cat ~/.ssh/id_ecdsa.pub
  • 1
2.生成 SSH 密钥 (以ED25519算法为例)

如果本地没有已存在的SSH密钥,或需要生成新的 SSH 密钥,请按如下步骤操作:

1、打开终端( windows 请使用 WSL或 Git Bash);

2、运行ssh-keygen -t,然后输入密钥算法类型和可选的注释。这个注释会出现在.pub文件中(与认证无关),一般可使用邮箱作为注释内容。

# 如果不想添加注释的话,输入下面的命令,一路回车即可。
ssh-keygen -t ed25519
  • 1
  • 2

密钥默认生成路径:/home/user/.ssh/id_ed25519,公钥与之对应为:/home/user/.ssh/id_ed25519.pub

3.设置config
$ vim ~/.ssh/config

# 写入如下的内容,以下三种类型选一个即可,不允许全部存在。
# 「+」后面的算法类型,可以看一下生成的id_rsa.pub|id_ed25519.pub|id_ecdsa.pub中的前缀
# *************************(重要)*************************

# 注:Host * 只是为了便捷操作,如本地有jumper等配置,建议指定具体的域名,例如Host git.sankuai.com | Host git.dianpingoa.com 依据你的ssh链接来配置即可。
# rsa
Host *
    HostkeyAlgorithms +ssh-rsa
    PubkeyAcceptedKeyTypes +ssh-rsa
    
# ed25519
Host *
    HostkeyAlgorithms +ssh-ed25519
    PubkeyAcceptedKeyTypes +ssh-ed25519
    
# ecdsa
Host *
    HostkeyAlgorithms +ecdsa-sha2-nistp256
    PubkeyAcceptedKeyTypes +ecdsa-sha2-nistp256
   
   
$ rm -rf ~/.ssh/known_hosts

$ git fetch origin
# 根据提示输入yes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/635335
推荐阅读
相关标签
  

闽ICP备14008679号