GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Der Ssh-Client von Openssh respektiert die Reihenfolge der Identitätsdateieinstellungen nicht?

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

Linux
  1. Ssh – Beschränken eines Ssh/scp/sftp-Benutzers auf ein Verzeichnis?

  2. Ssh – Geben Sie dem Server Zugriff auf das Internet, über eine Client-Verbindung über SSH?

  3. Ermitteln Sie die IP-Adresse des Clients in einer SSH-Sitzung

  4. HTTP-Proxy über ssh, nicht Socken

  5. SSH nicht möglich:debug1:erwartet SSH2_MSG_KEX_DH_GEX_REPLY

So installieren Sie Mosh Shell als SSH-Alternative unter Linux

So konfigurieren Sie Timeout auf SSH-Client-Putty

Secure Shell:SSH-Client des Chrome-Webbrowsers

WinSCP-Client für Ubuntu

Was könnte "Roaming vom Server nicht erlaubt" des SSH-Clients bedeuten?

Linux-Datumsbefehl funktioniert nicht