Come posso specificare l'ordine in cui il client SSH di OpenSSH (OpenSSH_7.5p1, OpenSSL 1.0.2k 26 gennaio 2017; Git per Windows v2.11.1) offre le coppie di chiavi pubbliche/private a un demone conforme a SSH come Apache Mina SSHD (Gerrit Servizio di revisione del codice). La mia intenzione è provare ad autenticarmi con una coppia di chiavi pubblica/privata Ed25519 prima di ricorrere a RSA.
Date le seguenti coppie di chiavi pubbliche/private standard Ed25519 e RSA sotto la home directory dell'utente:
~/.ssh/id_ed25519{,.pub}
~/.ssh/id_rsa{,.pub}
e le seguenti sezioni Host nel file di configurazione SSH dell'utente (~/.ssh/config):
Host foobar foobar.example.com
Hostname foobar.example.com
IdentityFile ~/.ssh/id_ed25519
Host *
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_rsa
durante il test della connessione SSH in modalità debug:
$ 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).
Vedo che il client SSH di OpenSSH offre prima la coppia di chiavi pubblica/privata RSA. Ma perché non prima Ed25519?
Risposta accettata:
Aggiungi IdentitiesOnly
opzione. Senza questa opzione SSH prova le prime chiavi ssh predefinite disponibili:id_rsa
, id_dsa
, id_ecdsa
. Per modificare questo comportamento, sostituisci la tua configurazione con questa:
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