Comment puis-je spécifier l'ordre dans lequel le client SSH d'OpenSSH (OpenSSH_7.5p1, OpenSSL 1.0.2k 26 janvier 2017 ; Git pour Windows v2.11.1) offre les paires de clés publique/privée à un démon conforme à SSH tel que Apache Mina SSHD (Gerrit service de révision des codes). Mon intention est d'essayer de m'authentifier avec une paire de clés publique/privée Ed25519 avant de revenir à RSA.
Étant donné les paires de clés publiques/privées standard Ed25519 et RSA sous le répertoire personnel de l'utilisateur :
~/.ssh/id_ed25519{,.pub}
~/.ssh/id_rsa{,.pub}
et les sections Host suivantes dans le fichier de configuration SSH de l'utilisateur (~/.ssh/config) :
Host foobar foobar.example.com
Hostname foobar.example.com
IdentityFile ~/.ssh/id_ed25519
Host *
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_rsa
lors du test de la connexion SSH en mode débogage :
$ 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).
Je peux voir que le client SSH d'OpenSSH propose d'abord la paire de clés publique/privée RSA. Mais pourquoi pas d'abord Ed25519 ?
Réponse acceptée :
Ajouter IdentitiesOnly
option. Sans cette option, SSH essaie les premières clés SSH par défaut disponibles :id_rsa
, id_dsa
, id_ecdsa
. Pour changer ce comportement, remplacez votre configuration par celle-ci :
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