¿Cómo puedo especificar el orden en el que el cliente SSH de OpenSSH (OpenSSH_7.5p1, OpenSSL 1.0.2k 26 de enero de 2017; Git para Windows v2.11.1) ofrece los pares de claves pública/privada a un demonio compatible con SSH como Apache Mina SSHD (Gerrit Servicio de revisión de código). Mi intención es tratar de autenticarme con un par de claves pública/privada Ed25519 antes de recurrir a RSA.
Dados los siguientes pares de claves pública/privada estándar Ed25519 y RSA debajo del directorio de inicio del usuario:
~/.ssh/id_ed25519{,.pub}
~/.ssh/id_rsa{,.pub}
y las siguientes secciones de Host en el archivo de configuración SSH del usuario (~/.ssh/config):
Host foobar foobar.example.com
Hostname foobar.example.com
IdentityFile ~/.ssh/id_ed25519
Host *
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_rsa
al probar la conexión SSH en modo de depuración:
$ ssh -Tv [email protected]
debug1: Reading configuration data ~/.ssh/config
debug1: ~/.ssh/config line 49: Applying options for foobar
debug1: ~/.ssh/config line 63: Applying options for *
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Offering ED25519 public key: ~/.ssh/id_ed25519
debug1: Server accepts key: pkalg ssh-ed25519 blen 51
debug1: Authentication succeeded (publickey).
Puedo ver que el cliente SSH de OpenSSH ofrece primero el par de claves pública/privada RSA. Pero, ¿por qué no primero Ed25519?
Respuesta aceptada:
Añadir IdentitiesOnly
opción. Sin esta opción, SSH prueba las primeras teclas ssh predeterminadas disponibles:id_rsa
, id_dsa
, id_ecdsa
. Para cambiar este comportamiento, reemplace su configuración con esta:
Host foobar foobar.example.com
Hostname foobar.example.com
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
Host *
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes