By default, in my current version (6.9p1), OpenSSH Server will create four types of host keys:
$ ls /etc/ssh/ssh_host_*_key.pub
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub
Through testing, I have noticed, at least using the same version of the OpenSSH client (6.9p1), the ECDSA key will be used by the host, regardless of the client's key type.
Where does OpenSSH decide on which priority the supported algorithms have? Is this information editable, or hardcoded in to the current version's source code?
And more importantly, why has OpenSSH decided give the ECDSA algorithm first priority?