So it turns out that the 160bit (20 byte) hash PHPStorm displays is a SHA1 hash, whereas ssh-keygen is showing a 128bit (16 byte) MD5 hash.
Neither are very explicit about that, so I've just thrown together a quick script to show various hashes of a public key (assuming your public key is in /etc/ssh/ssh_host_rsa_key.pub
#!/usr/bin/python
import binascii
import hashlib
keyfile = "/etc/ssh/ssh_host_rsa_key.pub"
def showHash(type, hash, data):
hash.update(data)
hex=hash.hexdigest()
hexbytes=[hex[i:i+2] for i in range(0, len(hex), 2)]
hexstring=":".join(hexbytes)
print type+" "+hexstring
f = open(keyfile)
words = f.readline().split()
data=words[1]
bindata=binascii.a2b_base64(data)
showHash("md5", hashlib.md5(), bindata)
showHash("sha1", hashlib.sha1(), bindata)
showHash("sha256", hashlib.sha256(), bindata)
Turns out that PHPStorm is using the SHA1 hash, and is quite correct. But it would be helpful if you could select which hash function to use in either ssh-keygen (which I believe you can in sh-keygen-g3) or in PHPStorm.