Hi,
I've been looking at handling host keys better, and tripped over this
bug. Essentially, if the server offers a HostCertificate that the
client doesn't accept, then the client doesn't then check for SSHFP
records.
Setup to reproduce:
Server has a HostCertificate, and appropriate SSHFP entries in the DNS.
Client does /not/ have a @cert-authority entry in known_hosts
What should happen:
Server offers the certificate, client rejects it and then validates
the SSHFP entry, and goes on to connect.
What does happen:
Server offers the certificate, client rejects it and then falls back
to prompting the user.
You can work around this by doing -o 'HostKeyAlgorithms=ssh-rsa', but
that disables certificate checking entirely, so isn't actually a fix.
I think this is a security issue, as host key checking is IMO
important security-wise, but I think "important" is the correct
severity.
Regards,
Matthew
-- System Information:
Debian Release: 7.4
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages openssh-client depends on:
ii adduser 3.113+nmu3
ii debconf [debconf-2.0] 1.5.49
ii dpkg 1.16.12
ii libc6 2.13-38+deb7u1
ii libedit2 2.11-20080614-5
ii libgssapi-krb5-2 1.10.1+dfsg-5+deb7u1
ii libselinux1 2.1.9-5
ii libssl1.0.0 1.0.1e-2+deb7u4
ii passwd 1:4.1.5.1-1
ii zlib1g 1:1.2.7.dfsg-13
Versions of packages openssh-client recommends:
ii openssh-blacklist 0.4.1+nmu1
ii openssh-blacklist-extra 0.4.1+nmu1
ii xauth 1:1.0.7-1
Versions of packages openssh-client suggests:
pn keychain <none>
pn libpam-ssh <none>
pn monkeysphere <none>
pn ssh-askpass <none>
-- Configuration Files:
/etc/ssh/ssh_config changed:
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
-- no debconf information