我一个接一个地运行两个命令。
我按以下顺序运行第二个命令失败,错误代码为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。
有谁知道这一切的原因?
答案 0 :(得分:0)
这是完全有效的行为。正如您在手册页中看到的那样,HostKeyAlgorithms
的默认值是可接受算法的相当长的列表。如果你提供包含一些未知算法的文件,它将会失败。
您提到的版本之间可能存在一些代码更改,前者忽略了未知密钥,而不是新密码失败。
如果你同时使用这两种算法,它将在两种情况下都适用于你。你的用例是什么?你为什么试图将openssh推入这样的角落?