随笔---配置ssk-key后还提示git@git.***'s password

423 阅读1分钟

一、背景

在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