Wie kann ich die Reihenfolge angeben, in der der SSH-Client von OpenSSH (OpenSSH_7.5p1, OpenSSL 1.0.2k 26. Januar 2017; Git für Windows v2.11.1) einem SSH-kompatiblen Daemon wie Apache Mina SSHD (Gerrit Codeüberprüfungsdienst). Ich möchte versuchen, mich mit einem öffentlichen/privaten Schlüsselpaar Ed25519 zu authentifizieren, bevor ich auf RSA zurückgreife.
Gegeben sind die folgenden Standard-Ed25519- und RSA-Public/Private-Key-Paare unterhalb des Home-Verzeichnisses des Benutzers:
~/.ssh/id_ed25519{,.pub}
~/.ssh/id_rsa{,.pub}
und die folgenden Host-Abschnitte in der SSH-Konfigurationsdatei des Benutzers (~/.ssh/config):
Host foobar foobar.example.com
Hostname foobar.example.com
IdentityFile ~/.ssh/id_ed25519
Host *
IdentityFile ~/.ssh/id_ed25519
IdentityFile ~/.ssh/id_rsa
beim Testen der SSH-Verbindung im Debug-Modus:
$ 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).
Ich kann sehen, dass der SSH-Client von OpenSSH zuerst das öffentliche/private Schlüsselpaar von RSA anbietet. Aber warum nicht zuerst Ed25519?
Akzeptierte Antwort:
Fügen Sie IdentitiesOnly
hinzu Möglichkeit. Ohne diese Option versucht SSH zuerst die verfügbaren Standard-SSH-Schlüssel:id_rsa
, id_dsa
, id_ecdsa
. Um dieses Verhalten zu ändern, ersetzen Sie Ihre Konfiguration durch diese:
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