Which host key algorithm is best to use for SSH?
When you first connect to an SSH server that is not contained inside your known_hosts
file your SSH client displays the fingerprint of the public key that the server gave. I found from this question here that as a client you are able to specify within ssh_config
which one of the public key pairs from the hosts' /etc/ssh/
directory you would like.
From the ssh_config
man page I found that the current defaults are as follows:
ecdsa-sha2-nistp256-cert-v01@openssh.com,
ecdsa-sha2-nistp384-cert-v01@openssh.com,
ecdsa-sha2-nistp521-cert-v01@openssh.com,
ssh-ed25519-cert-v01@openssh.com,
ssh-rsa-cert-v01@openssh.com,
ssh-dss-cert-v01@openssh.com,
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,
ecdsa-sha2-nistp521,ssh-ed25519,
ssh-rsa,ssh-dss
Only recently my SSH server has been sending me a ECDSA fingerprint instead of an RSA, but I was wondering which algorithm should I choose if it even matters?
This article claims that ECDSA is the old elliptic-curve DSA implementation that is known to have severe vulnerabilites
Should I be using RSA or the newest ed25519 algorithm?