使用ssh-dss作为hostKeyAlgortihm运行时,ssh命令失败

时间:2015-07-27 19:17:49

标签: linux ssh openssh

我一个接一个地运行两个命令。

我按以下顺序运行第二个命令失败,错误代码为255

第一个命令:

ssh -ladmin -oStrictHostKeyChecking=no \
  -oUserKnownHostsFile=/tmp/known_hosts.sshHostKey \
  -oHostKeyAlgorithms=ssh-rsa 172.23.13.35 echo AN_INTERESTING_STRING'

第二个命令:

ssh -ladmin -oStrictHostKeyChecking=no \
  -oUserKnownHostsFile=/tmp/known_hosts.sshHostKey \
  -oHostKeyAlgorithms=ssh-dss 172.23.13.35 echo AN_INTERESTING_STRING'

只需将HostKeyAlgorithms从ssh-dsa更改为ssh-dss。

但是,如果我颠倒了运行这些命令的顺序(首先使用ssh-dss作为HostKeyAlgorithm,然后使用ssh-dsa)。一切正常。

只有在我将openssh-clients版本升级到openssh-clients-6.6.1后才会发生这种情况。 它没有发生在我的早期版本,即openssh-clients-5.5。

有谁知道这一切的原因?

1 个答案:

答案 0 :(得分:0)

这是完全有效的行为。正如您在手册页中看到的那样,HostKeyAlgorithms的默认值是可接受算法的相当长的列表。如果你提供包含一些未知算法的文件,它将会失败。

您提到的版本之间可能存在一些代码更改,前者忽略了未知密钥,而不是新密码失败。

如果你同时使用这两种算法,它将在两种情况下都适用于你。你的用例是什么?你为什么试图将openssh推入这样的角落?