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

SSH-Login funktioniert nicht mit Schlüssel Ohne Passwort?

Sie hatten folgenden Fehler:

Der Agent hat ein Versäumnis zuzugeben, mit dem Schlüssel zu signieren.

Dies ist eine leider nicht diagnostische Meldung. Es gibt (mindestens) zwei Klassen von Problemen, die behandelt werden könnten:

Der Schlüssel ist nicht geladen

Für die meisten Probleme bedeutet dies, dass Ihr ssh-agent hat keine ssh-Schlüssel geladen, die für Ihr Konto auf dem Zielserver akzeptiert werden. In diesem Fall ist die Lösung, wie in der Antwort von @Networker auf diese Frage erwähnt, ziemlich einfach:Fügen Sie den Schlüssel hinzu:

ssh-add

Wenn sich der Schlüssel an einem nicht standardmäßigen Ort befindet, müssen Sie dies ssh-add mitteilen :

ssh-add /path/to/key

Der Agent kann den Schlüssel nicht verstehen

Dies war der GNOME-Fehler 754028, der in Seahorse 3.29.90 behoben wurde (stable 3.30, veröffentlicht am 03.09.2018, enthalten in Ubuntu 18.10, Fedora 29 und wahrscheinlich Red Hat/CentOS 9). Seahorse vor 3.29.90 (und daher GNOME Keyring) konnte neue Schlüsseltypen wie ed25519 und mit ssh-keygen -o -a 100 generierte Schlüssel weder erstellen noch hinzufügen (wie im Secure Secure Shell-Tutorial vorgeschlagen).

Diagnose dieses Problems:

  • ssh myserver schlägt fehl mit "ssh-Agent hat Fehler zugelassen"
  • SSH_AUTH_SOCK= ssh myserver funktioniert einwandfrei
  • Schlussfolgerung:gnome-keyring kann nicht mit komplexen Schlüsseln umgehen

Da ich gerade eine praktikable Problemumgehung für diesen Fehler gefunden habe und er nirgendwo veröffentlicht zu sein scheint (außer dem Kommentar, den ich gerade zu einem Ubuntu-Fehler hinzugefügt habe), werde ich ihn hier einfügen.

Problemumgehung: Starten Sie ein neues ssh-agent Verwenden Sie denselben Socket wie den von gnome-keyring :

ssh-agent -a $SSH_AUTH_SOCK

Dadurch wird eine neue Instanz von ssh-agent gestartet (wobei die weniger leistungsfähige Instanz von GNOME überschrieben wird), sodass keine Schlüssel darin enthalten sind (obwohl seahorse sagt, da das an den alten Agenten gebunden ist). Sie müssen sie über ssh-add hinzufügen wie in Der Schlüssel ist nicht geladen angegeben Abschnitt oben.

Sie müssen dies jedes Mal ausführen, wenn Sie sich anmelden (oder es manuell zu Ihren Startskripten hinzufügen). Wenn Sie den alten Socket beibehalten möchten, führen Sie mv $SSH_AUTH_SOCK $SSH_AUTH_SOCK.broken aus zuerst.


Ich habe das Problem einfach gelöst, indem ich diesen Befehl auf dem lokalen Computer ausgeführt habe (nach dem Generieren des Schlüssels):

$ ssh-add

Linux
  1. So richten Sie die SSH-Anmeldung ohne Passwort ein

  2. Ssh – Wie beschleunigt man die zu langsame SSH-Anmeldung?

  3. Ssh – Wie führt man ssh-add automatisch ohne Passwortabfrage aus?

  4. Ssh – Benötigen Sie ein Tty, um Sudo auszuführen, wenn ich Sudo ohne Passwort ausführen kann?

  5. So führen Sie SSH und SCP ohne Passwort von SSH2 zu OpenSSH durch

So richten Sie eine passwortlose SSH-Anmeldung ein

Passwortloser SSH-Login in 3 einfachen Schritten

So kopieren Sie Dateien aus der Ferne über SSH, ohne ein Passwort einzugeben

Führen Sie SSH und SCP ohne Passworteingabe auf openSSH aus

3 Schritte zur SSH-Anmeldung ohne Passwort mit ssh-keygen &ssh-copy-id

Wie zwinge ich einen Benutzer, ein Passwort bei der ersten Anmeldung mit ssh zu ändern?