Nik*_*kov 106 ssh web-hosting
我正在尝试在我的Web主机上创建一个git存储库并在我的计算机上克隆它.这是我做的:
ssh-keygen -t dsa.~/.ssh.然后,在尝试运行该命令后git clone ssh://user@host/path-to-repository,我收到一个错误:
无法与XX.XXX.XX.XX协商:未找到匹配的主机密钥类型.他们的提议:ssh-dss
致命:无法从远程存储库读取.
请确保您具有正确的访问权限并且存储库存在.
那是什么意思?
Jak*_*uje 168
最近的openssh版本默认不推荐使用DSA密钥.您应该建议您的GIT提供商添加一些合理的主机密钥.仅依靠DSA不是一个好主意.
作为解决方法,您需要告诉您的ssh客户您要接受DSA主机密钥,如旧版用法的官方文档中所述.您几乎没有可能,但我建议您将这些行添加到您的~/.ssh/config文件中:
Host your-remote-host
HostkeyAlgorithms +ssh-dss
Run Code Online (Sandbox Code Playgroud)
其他可能性是使用环境变量GIT_SSH来指定这些选项:
GIT_SSH_COMMAND="ssh -oHostKeyAlgorithms=+ssh-dss" git clone ssh://user@host/path-to-repository
Run Code Online (Sandbox Code Playgroud)
Gui*_*ume 73
您还可以添加-oHostKeyAlgorithms=+ssh-dssssh行:
ssh -oHostKeyAlgorithms=+ssh-dss user@host
Run Code Online (Sandbox Code Playgroud)
小智 18
对我来说,这工作:(加入.ssh\config)
Host *
HostkeyAlgorithms +ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss
Run Code Online (Sandbox Code Playgroud)
如果你像我一样,并且宁愿不制作这个安全漏洞系统或用户范围,那么你可以通过在那些repos中运行这个命令,为任何需要它的git repos添加一个配置选项.(注意仅适用于git版本> = 2.10,发布2016-09-04)
git config core.sshCommand 'ssh -oHostKeyAlgorithms=+ssh-dss'
Run Code Online (Sandbox Code Playgroud)
这仅在设置回购后才有效.如果您不习惯手动添加远程(并且只想克隆),那么您可以像这样运行克隆:
GIT_SSH_COMMAND='ssh -oHostKeyAlgorithms=+ssh-dss' git clone ssh://user@host/path-to-repository
Run Code Online (Sandbox Code Playgroud)
然后运行第一个命令使其永久化.
如果你没有最新版本,并且仍然希望尽可能保留当地的洞,我建议推杆
export GIT_SSH_COMMAND='ssh -oHostKeyAlgorithms=+ssh-dss'
Run Code Online (Sandbox Code Playgroud)
在一个文件中,比如说git_ssh_allow_dsa_keys.sh,并source在需要时进行处理.
| 归档时间: |
|
| 查看次数: |
109891 次 |
| 最近记录: |