一、背景
在di马上四年了,用了三年多的mac终于可以内购了,于是申请了内购,领了新的mac电脑,不过新电脑是M3芯片,系统版本是sonoma 14.1;刚刚迁移完数据,好多ide都需要重新下载;
这篇文章主要记录一下明明配置ssh-key了还无法拉取远程代码的问题
二、配置ssh-key
打开terminal,输入下面的命令一路回车
ssh-keygen -o -t rsa -C "你的邮箱地址" -b 4096
命令执行成功后会在 .ssh目录下生成公钥和私钥,如下
bogon:~ di*$ cd .ssh
bogon:.ssh di*$ ls
id_rsa id_rsa.pub known_hosts
执行cat .ssh/id_rsa.pub获取公钥,获取公钥后去公司git后台addkey
bogon:~ di*$ cat .ssh/id_rsa.pub
正常来说其实就可以拉取代码了,不过执行git pull,还是会提示git@git.***'s password:让继续输入密码
执行命令ssh -Tv git@git.公司域名查看debug日志如下,从日志中可以看到本地的ssh版本是OpenSSH_9.4p1,远程的是OpenSSH_6.6,ssh在9.0以后校验方式默认不支持rsa,需要手动添加
bogon:~ di*$ ssh -Tv git@git.******.com
OpenSSH_9.4p1, LibreSSL 3.3.6
...省略...
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6
debug1: compat_banner: match: OpenSSH_6.6 pat OpenSSH_6.5*,OpenSSH_6.6* compat 0x14000002
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
...省略...
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
...省略...
debug1: Next authentication method: password
git@git.******'s password:
解决办法执行sudo vim /etc/ssh/ssh_config在config文件后增加rsa支持,如下
Host *
SendEnv LANG LC_*
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
最后执行ssh -T git@git.公司域名验证一下ok了
bogon:~ di*$ ssh -T git@git.******
Welcome to GitLab, @******huai