Frage Ubuntu 16.04 ssh: sign_and_send_pubkey: Signierung fehlgeschlagen: Agent wurde abgelehnt


Ich habe gerade mein Ubuntu-System von 15.10 auf 16.04 aktualisiert, indem ich die Ubuntu 15-Partition komplett von meinem System gelöscht habe.

Nach der Installation von Ubuntu 16.04 habe ich meine SSH-Schlüssel neu erstellt, da ich vergessen habe, sie zu sichern, aber wann immer ich versuche, ssh zu verwenden, bekomme ich sign_and_send_pubkey: signing failed: agent refused operation Das ist ein bisschen nervig, da es mich zu meinem ssh-Server durchlässt, aber git weigert sich, Code mit ssh zu pushen.

Ich habe schon die Schlüssel zum Server geschoben, indem ich benutzt habe ssh-copy-id.

Der Server, mit dem ich mich verbinde, ist ein Ubuntu 16.04 Server, der über den Server aktualisiert wurde do-release-upgrade Befehl. Jede Hilfe wird sehr geschätzt.


118
2018-04-25 16:31


Ursprung




Antworten:


Sieht aus wie ein ssh-agent läuft bereits, aber es können keine angehängten Schlüssel gefunden werden. Um dies zu lösen, fügen Sie dem Authentifizierungsagenten die privaten Schlüsselidentitäten wie folgt hinzu:

ssh-add

Dann kannst du ssh in deinen Server.

Außerdem können Sie die Liste der Fingerabdrücke aller derzeit hinzugefügten Identitäten sehen:

ssh-add -l

230
2018-04-25 16:52



Es ist nicht -1 (Nummer <eins>), es ist -l (Kleinbuchstabe L) in Ihrem zweiten Befehl - Daniel Alder
@Daniel Alder Es ist in der Tat Kleinschreibung l. - Ron
Du hast recht, Entschuldigung. Problem ist der Kleinbuchstabe L der Schriftart "Liberation Mono" :-( - Daniel Alder
Ich denke nicht, dass du es benutzen solltest ssh-add anders als zu verwenden ssh-add -l weil Sie zu viele Einträge in der ssh-agent. Es muss nicht manuell hinzugefügt werden. Dash > Startup Applications zeigt, dass ssh-agent läuft bereits und es erkennt automatisch die Dateien wie ~/.ssh/id_rsa und ~/.ssh/id_rsa.pub. Um dies zu beweisen, können Sie verwenden ssh-add -l vor und nach dem Gebrauch ssh-keygen. Sie werden sehen, dass es die Dateien überwacht, so dass Sie sie nicht manuell hinzufügen müssen. - H2ONaCl
Ebenso nicht verwenden ssh-add -d und ssh-add -D manuelle Löschung durchführen. Löschen Sie einfach die Schlüsseldateien ~/.ssh/id_rsa und ~/.ssh/id_rsa.pub und das ssh-agent werde es bemerken. Um zu beweisen, dass du es kannst ssh-add -l vor und nach dem Löschen der Schlüsseldateien. - H2ONaCl


Ich hatte das gleiche Problem (gleiche Symptome)

sam@xxxxx:~/.ssh$ ssh centos@123.123.123.123
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

... aber die Lösung war anders.

Das Problem kam von der Verwendung von GNOME-KEYRING. Der Post, der sich auf die Lösung bezieht, kann gelesen werden Hier.

Zusamenfassend:

  1. Erkennen Sie das Problem, indem Sie SSH_AUTH_SOCK = 0 vor dem Befehl ssh hinzufügen. sam @ xxxxx: ~ / .ssh $ SSH_AUTH_SOCK = 0 ssh centos@123.123.123.123
  2. Falls es gelingt, eine Verbindung herzustellen. Öffnen Sie die Anwendung StartUp Application (indem Sie beispielsweise die Suchfunktion des Desktops verwenden) und deaktivieren Sie die Verwendung von gnome-keyring.
  3. Starten Sie neu

Die Seite bietet andere Details im Falle eines ähnlichen Problems mit verschiedenen Lösungen.


25
2017-10-10 06:59



Deine Lösung hat für mich zur Hälfte funktioniert (anderes Problem mit ähnlichen Symptomen). Mit Schritt 1 habe ich die Fehlermeldung erhalten Permissions 0775 for '.ssh/id_rsa' are too open. Die einfache Lösung hier war zu chmod 600 .ssh/id_rsa. - Matt


Ich habe das bekommen sign_and_send_pubkey: signing failed: agent refused operation Wenn Sie sich bei mehreren Servern anmelden, lesen Sie VonCs Antwort auf Stack Overflow Für mehr Informationen über verwandte Bugs war die Lösung für mich Gnome-Keyring zu entfernen, Identitäten von ssh-agent zu löschen und neu zu starten.

sudo apt-get autoremove gnome-keyring
ssh-add -D

Dann haben alle meine Schlüssel perfekt funktioniert.

AKTUALISIEREN:

Temporäre Lösung ohne Keyring zu deinstallieren

Wenn du den Gnome-Schlüsselring behalten willst und du den agent refused operation Fehler, benutze:

eval `ssh-agent -s`
ssh-add

oder benutzen SSH_AUTH_SOCK=0 ssh your-server

Die dauerhafte Lösung ohne Schlüsselring zu deinstallieren

Wenn Sie können, ist gnome-keyring kompatibel mit 4096 bit RSA-Schlüssel, also erzeugen Sie einfach einen neuen Schlüssel mit:

ssh-keygen -t rsa -f ~/.ssh/your-key-name -b 4096 -v -C root

Laden Sie den öffentlichen Schlüssel auf den Server hoch

$ ssh-copy-id -i ~/.ssh/your-key-name.pub root@12.34.56.78

Fügen Sie dem Agenten den ssh-Schlüssel hinzu

ssh-add ~/.ssh/your-key-name

Dies sollte ohne zusätzliche Hacks funktionieren und gnome-keyring kann weiterhin installiert bleiben.

(Der -C [Benutzername] ist optional, wird aber von Anbietern wie Google Cloud benötigt)


14
2018-04-26 07:38



Ja, aber dies entfernt alle ssh-Agent-Funktionalität, die sehr nützlich ist - Martin Konecny
Bitte notieren Sie sich, in welchem ​​PC Sie sudo apt-get, unseren eigenen Computer oder Remote-Server verwenden. Vielen Dank. - Shicheng Guo
Keyring auf Ihrem eigenen lokalen PC, da Keyring Teil von GNOME ist, wird es normalerweise nicht auf dem Server installiert. - Mike
@MartinKonecny ​​gut, es entfernt nur den ssh-Agenten, der von gnome zur Verfügung gestellt wird, es entfernt nicht die einfache und einfache Konsole ssh-agent (wenn Sie das installiert haben). Das Problem ist, dass die Gnom-Sorte dem Normalfall in die Quere kommt ssh-agent. Sie können ssh-agent immer noch starten und Kennwörter für den privaten Schlüssel auf der Konsole / Shell eingeben. - blubberdiblub


Auf meinem System (auch Ubuntu 16.04, versuche mich mit github zu verbinden) hatte ich eine Datei id_ed25519 in meinem .ssh-Ordner, die gemacht hat ssh-add Versagen:

$ ssh-add
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)
Could not add identity "~/.ssh/id_ed25519": communication with agent failed

Nach dem Entfernen der Dateien ~/.ssh/id_ed25519* (brauchte sie nicht mehr, es war von einem früheren Test) alles lief wieder gut.


8
2018-06-11 15:56



Und was, wenn Sie sie brauchen? - Gringo Suave
@GringoSuave Gute Frage. Hast du versucht? Vielleicht hat sich das Format geändert oder wird von ssh nicht mehr unterstützt - oder es ist ein Fehler. Persönlich war ich froh, dass ich es nicht testen musste ... - Daniel Alder
Arbeitet immer noch nicht für mich, ich habe keine Lösung: Could not add identity "~/.ssh/id_ed25519": communication with agent failedAgent läuft und konfiguriert, soweit ich das beurteilen kann. - Gringo Suave
@GringoSuave die Lösung hier ist auch, um den Gnome-Authentifizierungs-Agent loszuwerden, die einen Agenten-Socket auf Ihre Shell anstelle der Ebene ssh-agentSteckdose. Der einfache ssh-Agent kann ED25519-Schlüssel verarbeiten, während der gnome-Authentifizierungsagent (neben anderen Problemen, die er verursacht) nicht in der Lage ist. Siehe die Antwort von sam askubuntu.com/a/835114/167846 oder Mike askubuntu.com/a/762968/167846 - blubberdiblub


Einfache Lösung

Ich hatte das gleiche Problem bei Ubuntu 18.04. Das ist alles über die Client-Seite Private Schlüsselberechtigungen.

$ ssh root@192.168.1.1
sign_and_send_pubkey: signing failed: agent refused operation

Die Dateiberechtigungen waren zu offen (0644).

Der folgende Befehl löste es:

chmod 600 .ssh/id_rsa

7
2018-05-31 14:56





Passiert, weil mein privater Schlüssel eine Passphrase hatte. Musste rennen ssh-add und dann fragte er nach der Passphrase und fügte sie korrekt hinzu. Allerdings fragt es jetzt nicht nach meiner Passphrase, wenn ich mich an eine Maschine anschließe.


6
2018-02-16 01:02





Nach dem Upgrade auf Ubuntu 18.04 habe ich den gleichen Fehler bekommen sign_and_send_pubkey: signing failed: agent refused operation. Stellt sich heraus, dass die Berechtigungen des ssh-Schlüssels zu offen waren. Der folgende Befehl behebt das Problem für mich chmod 600 .ssh/id_rsa


6
2018-05-04 15:44





Kommentar hinzufügen, da ich dasselbe Problem mit ed25519 Schlüsseln hatte. Das Problem ist in der Tat gnome-keyring. Um das zu beheben, habe ich Folgendes getan:

  • Ungeprüfter ssh-key-agent (gnome-keyring) in "Startup-Anwendungen"
  • Der Agent ssh-agent und gnome wurde getötet: (killall ssh-agent; killall Gnome-Schlüssel-Daemon)
  • Neustart des Daemon: (eval ssh-agent -s)
  • Fügen Sie Ihren Schlüssel hinzu: $ ssh-add id_ed25519 Geben Sie die Passphrase für id_ed25519 ein: Identität hinzugefügt: id_ed25519
  • Profitieren!!

2
2017-12-16 15:03