赞
踩
原因可能为:升级系统后,Ventura系统附带OpenSSH_9.0p1禁用了基于SHA-1哈希算法的 RSA 签名。
https://www.droidwin.com/ssh-not-working-in-macos-ventura-fix/
用户可以终端查看当前openssh版本,该问题常见于>8.8版本时。
ssh -V
1、在生成公钥的~/.ssh文件夹下,
vim config
2、注意:config文件没有后缀,文件末尾中添加如下内容:
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
有些用户修改~/.ssh配置文件不生效的情况,可能是配置了Host的配置。可以尝试添加上述配置到系统/etc/ssh/ssh_config文件解决。
以上是rsa算法密钥的情况下的解决办法,现在更推荐ED25519算法来生成密钥。因为rsa有缺陷
在生成新的 SSH 密钥前,请先确认是否需要使用本地已生成的SSH密钥,SSH 密钥对一般存放在本地用户的根目录下。
在你的计算机命令行中执行以下语句,判断是否已经存在本地公钥。如果返回一长串以 ssh-ed25519 或 ssh-rsa 开头的字符串, 说明已存在本地公钥,你可以跳过「生成 SSH 密钥」步骤。
算法类型 | 公钥 | 私钥 | 命令 |
---|---|---|---|
ED25519(推荐) | id_ed25519.pub | id_ed25519 | ssh-keygen -t ed25519 |
RSA | id_rsa.pub | id_rsa | ssh-keygen -t rsa |
ECDSA | id_ecdsa.pub | id_ecdsa | ssh-keygen -t ecdsa |
Linux、Mac 可以直接使用以下命令查看已生成的公钥,Windows 用户在 WSL(需要 windows10 或以上)或 Git Bash下使用以下命令查看已生成公钥:
ED25519 算法
cat ~/.ssh/id_ed25519.pub
RSA 算法
cat ~/.ssh/id_rsa.pub
ECDSA 算法
cat ~/.ssh/id_ecdsa.pub
如果本地没有已存在的SSH密钥,或需要生成新的 SSH 密钥,请按如下步骤操作:
1、打开终端( windows 请使用 WSL或 Git Bash);
2、运行ssh-keygen -t,然后输入密钥算法类型和可选的注释。这个注释会出现在.pub文件中(与认证无关),一般可使用邮箱作为注释内容。
# 如果不想添加注释的话,输入下面的命令,一路回车即可。
ssh-keygen -t ed25519
密钥默认生成路径:/home/user/.ssh/id_ed25519
,公钥与之对应为:/home/user/.ssh/id_ed25519.pub
。
$ 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。