Skip to content

Instantly share code, notes, and snippets.

@javierav
Last active August 2, 2023 16:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save javierav/861dfe3c6009ec163654b1643cf20f8a to your computer and use it in GitHub Desktop.
Save javierav/861dfe3c6009ec163654b1643cf20f8a to your computer and use it in GitHub Desktop.
SSH Keys

SSH Keys

Por defecto en Ubuntu, cuando instalamos openssh-server se generan 4 claves públicas con sus correspondientes claves privadas usando cada una un algoritmo diferente:

  • /etc/sshd/ssh_host_dsa_key.pub - ssh-dss
  • /etc/sshd/ssh_host_ecdsa_key.pub - ecdsa-sha2-nistp256
  • /etc/sshd/ssh_host_ed25519_key.pub - ssh-ed25519
  • /etc/sshd/ssh_host_rsa_key.pub - ssh-rsa

Esas claves sirven para autentificar al servidor para evitar ataques tipo Man in the Middle.

Podemos obtener el fingerprint sha256 o md5 de cada una de ellas ejecutando en el servidor:

ssh-keygen -l -E sha256 -f <key>.pub
ssh-keygen -l -E md5 -f <key>.pub

El cliente que se conecta al servidor es el que decide qué claves quiere usar (ver) mediante la directiva HostKeyAlgorithms de la configuración de ssh.

Si ejecutamos ssh -Q key en el equipo del cliente se mostrará un listado en orden de los algoritmos que se usarán. Por ejemplo, en mi Macbook:

~ $ ssh -Q key
ssh-ed25519
ssh-ed25519-cert-v01@openssh.com
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-rsa-cert-v01@openssh.com
ssh-dss-cert-v01@openssh.com
ecdsa-sha2-nistp256-cert-v01@openssh.com
ecdsa-sha2-nistp384-cert-v01@openssh.com
ecdsa-sha2-nistp521-cert-v01@openssh.com

La primera vez que accedemos por ssh a un servidor, ssh nos muestra información de la clave del servidor para que decidamos si es válida y la almacene en el archivo .known_hosts o no.

The authenticity of host 'x.x.x.x (x.x.x.x)' can't be established.
ED25519 key fingerprint is SHA256:DV7WuetI+4STnpQ08C0EK9i5H9f44Pt2UYgm8Y9fnek.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'x.x.x.x' (ED25519) to the list of known hosts.

En realidad se guardan en ese archivo 3 claves, las correspondientes a los algoritmos ssh-ed25519, ssh-rsa y ecdsa-sha2-nistp256. El algoritmo ssh-dss está en desuso y aunque se genera la clave, el servidor OpenSSH no la tiene configurada.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment