Zum Inhalt springen
ecdsa.com
golang.org/x/crypto/ssh/knownhosts (Go)Go

Fehlermeldung

ssh: handshake failed: knownhosts: key is unknown

Auch ausgegeben als

  • ssh: handshake failed: knownhosts: key mismatch
  • ssh: must specify HostKeyCallback

`*knownhosts.KeyError` hat ein Feld `Want`: leer bei „key is unknown“, nicht leer bei „key mismatch“. „ssh: must specify HostKeyCallback“ bedeutet, dass die `ClientConfig` überhaupt keine Prüfung des Host-Schlüssels hat.

golang.org/x/crypto/ssh/knownhosts (Go) — *knownhosts.KeyError from the HostKeyCallback

Was der Fehler bedeutet

Der Callback `knownhosts` hat in deiner known_hosts-Datei keinen Eintrag für diesen Host (und Port) gefunden und deshalb dem Schlüssel, den der Server präsentiert hat, nicht vertraut. Hier funktioniert die Host-Authentifizierung: Ohne bekannten Schlüssel kann der Client den echten Server nicht von einem falschen unterscheiden. „key mismatch“ ist der ernstere verwandte Fehler – der Host ist eingetragen, aber mit einem anderen Schlüssel.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Host-Schlüssel erst nach der Prüfung hinzufügen

    `ssh-keyscan` holt nur, was dir das Netzwerk liefert. Vergleiche den Fingerabdruck mit einer vertrauenswürdigen Quelle, bevor du ihn hinzufügst; übernimm geprüfte Einträge fest in Images oder ins Provisioning.

    bash
    # Fetch the host key, then compare its fingerprint with one obtained out of band
    # (cloud console, provisioning output, the server's /etc/ssh/*.pub).
    ssh-keyscan -t ed25519 -p 22 server.example.com > /tmp/hostkey
    ssh-keygen -lf /tmp/hostkey
    cat /tmp/hostkey >> ~/.ssh/known_hosts      # only after the fingerprints match
  2. 2.

    Für eigene Ports die Form mit eckigen Klammern verwenden

    knownhosts vergleicht Host und Port genau so wie OpenSSH. `knownhosts.Normalize` und `knownhosts.Line` erzeugen aus Go heraus korrekt formatierte Einträge.

    text
    # known_hosts entry for a non-default port: brackets and the port are part of the name
    [server.example.com]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen