本地git ssh连接远程git仓库时报错的解决方案

1.生成ssh key

在终端输入 命令 ssh-keygen -t rsa -C “xxxx” 回车后会提示你输入密码,不需要理会,一直按回车即可,直到最后提示 “The key’s randomart image is”,即生成成功 注:xxxx为注册git远程仓库时的邮箱。

2.add key

复制刚刚生成的key ,命令为“cat ~/.ssh/id_rsa.pub”然后粘贴到git 目录 ssh keys 下add key,这样就配置完毕了。

此时使用git连接远程仓库如github或gitlab可能会报如下错误
Unable to negotiate with *.*.*.* port **: no matching host key type found. Their offer: ssh-dss fatal: Could not read from remote repository. 这是因为你的系统所装的是OpenSSH 7.0及更高版本。需要额外执行一步操作。

3.重新启用ssh_dss

OpenSSH 7.0及更高版本会禁用ssh-dss(DSA)公钥算法。 所以OpenSSH 7.0及更高版本则需要增加额外操作来重新启用ssh-dss,操作如下:

.ssh目录下增加了config文件,命令如下:$ vim config

在config中需要写入如下内容:

Host [git.XX.XX.com](http://git.xx.xx.com/)
HostKeyAlgorithms +ssh-dss
第一句中的XX.XX大家根据自己的项目中ssh链接查看@后面到‘:’前的一段,格式为

git.XX.XX.com.保存文件,重新提交就好了

你可能感兴趣的:(工具)