Call for testing: OpenSSH 8.2

Damien Miller djm at mindrot.org
Thu Feb 6 14:41:40 AEDT 2020


On Wed, 5 Feb 2020, Phil Pennock wrote:

> On 2020-02-05 at 20:39 -0500, Phil Pennock wrote:
> Rediscovered part of why I was doing this: HostKeyAlgorithms is not
> cumulative across rules, instead still being the "first match", even
> when subsequent entries start with "+" or "-".
> 
> IMO the easiest way for people to safely test and discover what works
> still is to have ssh config which looks like:
> 
>   Host *
>     HostKeyAlgorithms -ssh-rsa*,ssh-dss*
> 
>   Host legacy
>     HostKeyAlgorithms +ssh-rsa
> 
> Is changing to support this, as long as subsequent rules start +/-,
> something sufficiently compatible that you'd consider it?

No, sorry - the rules evaluation is enough of a mess without adding
more corner cases where first-match-doesn't-always-win...

> Yes, we can put the "HostKeyAlgorithms -ssh-rsa*,ssh-dss*" at the end of
> the file, but then every host where we explicitly enable ssh-rsa, we
> then have to also re-disable the things we don't intend to re-enable.
> 
> So I contend that the behavior of this is only obvious to OpenSSH
> experts and it will cause me pain helping folks:
> 
>   Host legacy
>     HostKeyAlgorithms +ssh-rsa
>   Host *
>     HostKeyAlgorithms -ssh-rsa*,ssh-dss*
> 
>   # net result: host legacy has ssh-dss* algorithms enabled, plus any
>   # ssh-rsa* glob matches beyond ssh-rsa itself

I don't think that is correct. Host legacy won't have ssh-dss enabled
because that isn't in the default set of algs to begin with.

That being said, the HostKeyAlgorithms knob is a bit subtle because
it is treated specially already because of its interaction with
known_hosts - by default ssh prefers algorithms in known_hosts to
ones that aren't. If the user overrides HostKeyAlgorithms then this
preference order is lost and the user may be presented with new/changed
host key warnings.

I think I can improve this situation; let me go write a patch :)

-d


More information about the openssh-unix-dev mailing list