It's not just the output format that has changed, but the algorithm used to generate the fingerprint. It used to be MD5, and now it is SHA256. MD5 is broken in many respects, and the general recommendation is to use SHA256 or the like. A change like that was long in coming.
From the release notes:
Add FingerprintHash option to ssh(1)
and sshd(8)
, and equivalent
command-line flags to the other tools to control algorithm used for
key fingerprints. The default changes from MD5 to SHA256 and format
from hex to base64.
Fingerprints now have the hash algorithm prepended. An example of
the new format: SHA256:mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE
Please note that visual host keys will also be different.
You can still get the old output:
ssh -o FingerprintHash=md5 ...
SHA256 hashes have 256 bits of output, which translates to 64 characters in hex. That's double the length of the 32-character MD5 hash in hex. Base64 encoded SHA256 characters are only 44 bytes in length (and the last =
for padding is omitted anyway).
MD5
is broken and now the default issha256
, but the format, however, base64 encode and hex strings, indicates the same thing. What's the benefit on changing the format then? – Rick Jun 26 '19 at 11:10sha256
hex64
characters,256bits
, while forbase64
,44
characters, but44*8=352bits
. – Rick Jun 26 '19 at 11:28512bits
you mention? Did I make another mistake in comments? Btw, thanks for the reference I am checking it now. – Rick Jun 26 '19 at 11:35