当前位置:  开发笔记 > 编程语言 > 正文

无法与XX.XXX.XX.XX协商:未找到匹配的主机密钥类型.他们的提议:ssh-dss

如何解决《无法与XX.XXX.XX.XX协商:未找到匹配的主机密钥类型.他们的提议:ssh-dss》经验,为你挑选了4个好方法。

我正在尝试在我的Web主机上创建一个git存储库并在我的计算机上克隆它.这是我做的:

    我在远程服务器上创建了一个存储库.

    我生成了一个密钥对:ssh-keygen -t dsa.

    我将我的密钥添加到ssh-agent.

    我复制到服务器公钥中~/.ssh.

然后,在尝试运行该命令后git clone ssh://user@host/path-to-repository,我收到一个错误:

无法与XX.XXX.XX.XX协商:未找到匹配的主机密钥类型.他们的提议:ssh-dss
致命:无法从远程存储库读取.
请确保您具有正确的访问权限并且存储库存在.

那是什么意思?



1> Jakuje..:

最近的openssh版本默认不推荐使用DSA密钥.您应该建议您的GIT提供商添加一些合理的主机密钥.仅依靠DSA不是一个好主意.

作为解决方法,您需要告诉您的ssh客户您要接受DSA主机密钥,如旧版用法的官方文档中所述.您几乎没有可能,但我建议您将这些行添加到您的~/.ssh/config文件中:

Host your-remote-host
    HostkeyAlgorithms +ssh-dss

其他可能性是使用环境变量GIT_SSH来指定这些选项:

GIT_SSH_COMMAND="ssh -oHostKeyAlgorithms=+ssh-dss" git clone ssh://user@host/path-to-repository



2> Guillaume..:

您还可以添加-oHostKeyAlgorithms=+ssh-dssssh行:

ssh -oHostKeyAlgorithms=+ssh-dss user@host



3> 小智..:

对我来说,这工作:(加入.ssh\config)

Host *
HostkeyAlgorithms +ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss


@Krischu不,`yuor-host`是你运行`ssh`的主机.为所有主机设置不安全的默认值总是坏主意.

4> golvok..:

如果你像我一样,并且宁愿不制作这个安全漏洞系统或用户范围,那么你可以通过在那些repos中运行这个命令,为任何需要它的git repos添加一个配置选项.(注意仅适用于git版本> = 2.10,发布2016-09-04)

git config core.sshCommand 'ssh -oHostKeyAlgorithms=+ssh-dss'

这仅在设置回购后才有效.如果您不习惯手动添加远程(并且只想克隆),那么您可以像这样运行克隆:

GIT_SSH_COMMAND='ssh -oHostKeyAlgorithms=+ssh-dss' git clone ssh://user@host/path-to-repository

然后运行第一个命令使其永久化.

如果你没有最新版本,并且仍然希望尽可能保留当地的洞,我建议推杆

export GIT_SSH_COMMAND='ssh -oHostKeyAlgorithms=+ssh-dss'

在一个文件中,比如说git_ssh_allow_dsa_keys.sh,并source在需要时进行处理.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有