Konfigurieren eines neuen Digital Ocean-Tröpfchens mit SSH-Schlüsseln. Wenn ich laufe, ssh-copy-id
bekomme ich Folgendes:
ssh-copy-id [email protected]
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
sign_and_send_pubkey: signing failed: agent refused operation
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Wenn ich dann jedoch versuche, ssh zu verwenden, geschieht Folgendes:
ssh [email protected]
sign_and_send_pubkey: signing failed: agent refused operation
[email protected]'s password:
Nach Eingabe des Passworts bin ich einwandfrei angemeldet, aber dies macht natürlich den Zweck der Erstellung des SSH-Schlüssels zunichte. Ich habe mich entschlossen, einen Blick auf die Serverseite des SSH-Agenten zu werfen, und hier ist, was ich bekomme:
[email protected]:~# eval `ssh-agent -s`
Agent pid 5715
[email protected]:~# ssh-add -l
The agent has no identities.
user / .ssh / authorized_keys enthält ebenfalls einen ssh-rsa-Schlüsseleintrag, gibt jedoch find -name "keynamehere"
nichts zurück.
quelle
gpg-agent
für die SSH-Funktionalität verwende. Ich habe bereits eineenable-ssh-support
eingehende,gpg-agent.conf
aber immer noch gleiche Fehlermeldung. Ich habe auf Mailing - Liste findet diese auszuführen:gpg-connect-agent updatestartuptty /bye
: bugs.debian.org/cgi-bin/bugreport.cgi?bug=835394ssh-add
muss dieser aufgerufen werdenssh-agent
, damit der neue private Schlüssel erkannt wird (per linux.die.net/man/1/ssh-agent ).ssh-add
es funktioniert hat! Vielen Dank.Nach dem Upgrade von Fedora 26 auf 28 hatte ich das gleiche Problem. Und folgende Protokolle fehlten
PROBLEM:
Die Fehlermeldung zeigt nicht auf das eigentliche Problem. Problem behoben durch
quelle
.ssh/
hatte nicht die erforderlichen Berechtigungen, da ich sie selbst manuell erstellt hatte.Ich hatte das gleiche Problem in Linux Ubuntu 18 . Nach dem Update von Ubuntu 17.10 würde jeder git-Befehl diese Meldung anzeigen.
Der Weg, um es zu lösen, besteht darin, sicherzustellen, dass Sie die richtige Berechtigung für das
id_rsa
und habenid_rsa.pub
.Überprüfen Sie die aktuelle chmod-Nummer mit
stat --format '%a' <file>
. Es sollte 600 fürid_rsa
und 644 für seinid_rsa.pub
.Um die Berechtigung für die Dateien zu ändern, verwenden Sie
Das hat mein Problem mit dem Update gelöst.
quelle
id_rsa.pub
wird der Clientauthentifizierungsprozess verwendet?~/.ssh
chmod 600 id_*
Führen Sie den folgenden Befehl aus, um dieses Problem zu beheben.
Es hat bei mir funktioniert.
quelle
Ich hatte den Fehler, als ich gpg-agent als ssh-agent und einen gpg-Unterschlüssel als ssh-Schlüssel https://wiki.archlinux.org/index.php/GnuPG#gpg-agent verwendete .
Ich vermute, dass das Problem durch einen ungültigen Pin-Eintrag tty für gpg verursacht wurde, der durch meinen in meiner Sway-Konfiguration verwendeten Befehl sleep + lock verursacht wurde
bindsym $mod+Shift+l exec "sh -c 'gpg-connect-agent reloadagent /bye>/dev/null; systemctl suspend; swaylock'"
oder nur den Schlaf / Suspend
Setzen Sie die Pin-Eingabe zurück, um das Problem zu beheben
gpg-connect-agent updatestartuptty /bye > /dev/null
und das Update für meinen Sway Sleep + Lock Befehl:
bindsym $mod+Shift+l exec "sh -c 'gpg-connect-agent reloadagent /bye>/dev/null; systemctl suspend; swaylock; gpg-connect-agent updatestartuptty /bye > /dev/null'"
quelle
gpg-connect-agent updaterstartuptty /bye > /dev/null
mein ~ / .zshrc kommentiert, das Kommentieren dieser Zeile hat mein Problem gelöst.Zu diesem Fehler:
Ich habe so gelöst:
Danke dir.
quelle
Es kann verschiedene Gründe für den SSH-Fehler geben:
Einige von ihnen könnten mit den in den anderen Antworten hervorgehobenen Problemen zusammenhängen (siehe Antworten in diesem Thread), einige könnten ausgeblendet sein und erfordern daher eine genauere Untersuchung.
In meinem Fall habe ich die folgende Fehlermeldung erhalten:
Die einzige Möglichkeit, das eigentliche Problem zu finden, bestand darin, die ausführliche Option -v aufzurufen, die zum Drucken vieler Debugging-Informationen führte:
Bitte beachten Sie, dass sich der Zeilenspruch
key_load_public: No such file or directory
auf die nächste Zeile und nicht auf die vorherige Zeile bezieht.Was SSH also wirklich sagt, ist, dass es die genannte öffentliche Schlüsseldatei nicht finden konnte,
id_rsa.website.domain.com-cert
und das schien in meinem Fall das Problem zu sein, da meine öffentliche Schlüsseldatei das-cert
Suffix nicht enthielt .Lange Rede, kurzer Sinn: In meinem Fall bestand die Lösung nur darin, sicherzustellen, dass die Datei mit dem öffentlichen Schlüssel wie erwartet benannt wurde. Ich hätte das nie ahnen können, ohne die Verbindung zu debuggen.
Unter dem Strich verwenden Sie den SSH-VERBOSE-MODUS (Option -v), um herauszufinden, was falsch ist. Es kann verschiedene Gründe geben, von denen keiner in diesem / einem anderen Thread gefunden werden kann.
quelle
Dies sollte eher eine SuperUser-Frage sein.
Richtig, ich habe genau den gleichen Fehler in MacOSX SourceTree, aber in einem iTerm2-Terminal funktionieren die Dinge einfach nur gut.
Das Problem schien jedoch zu sein, dass ich zwei
ssh-agent
Sekunden laufen habe;Das erste ist
/usr/bin/ssh-agent
(auch bekannt als MacOSX) und dann auch das installierte HomeBrew/usr/local/bin/ssh-agent
.Durch das Starten eines Terminals von SourceTree aus konnte ich die Unterschiede erkennen
SSH_AUTH_SOCK
, indemlsof
ich die beiden verschiedenenssh-agent
s fand und dann die Schlüssel (usingssh-add
) in die Standardeinstellung des Systemsssh-agent
(dh/usr/bin/ssh-agent
) laden konnte. SourceTree funktionierte wieder.quelle
Ja. Führen Sie ssh-add auf dem Clientcomputer aus. Wiederholen Sie dann den Befehl ssh-copy-id [email protected]
quelle
Für mich war das Problem ein falsches Kopieren / Einfügen des öffentlichen Schlüssels in Gitlab. Die Kopie erzeugte eine zusätzliche Rendite. Stellen Sie sicher, dass das, was Sie einfügen, ein einzeiliger Schlüssel ist.
quelle
Ich habe auch einen
sign_and_send_pubkey: signing failed: agent refused operation
Fehler bekommen. Aber in meinem Fall war das Problem ein falscherpinentry
Weg.In meinem Haus zeigte
${HOME}/.gnupg/gpg-agent.conf
daspinentry-program
Grundstück auf einen alten Pinentry-Pfad. Korrigieren Sie den Pfad dort und startengpg-agent
Sie ihn neu.Ich habe es entdeckt, indem ich den Protokollen mit gefolgt bin
journalctl -f
. Dort, wo Protokollzeilen wie die folgenden den falschen Pfad enthalten:quelle
Ich muss teilen, da ich zu viel Zeit damit verbracht habe, nach einer Lösung zu suchen
Ich habe diesen Befehl verwendet:
gnome-keyring unterstützt den generierten Schlüssel nicht.
Das Entfernen des
-o
Arguments löste das Problem.quelle
In meinem Fall bestand das Problem darin, dass der GNOME-Schlüsselring eine ungültige Passphrase für den zu verwendenden SSH-Schlüssel enthielt. Nachdem ich unanständig viel Zeit mit der Fehlerbehebung verbracht hatte, lief ich
seahorse
und fand den Eintrag, der eine leere Zeichenfolge enthielt. Ich kann nur vermuten, dass dies darauf zurückzuführen ist, dass die Passphrase bei der ersten Verwendung einige Zeit zuvor falsch eingegeben und dann wahrscheinlich der Anforderer oder so abgebrochen wurde, um zur Befehlszeile zurückzukehren. Das Aktualisieren des Eintrags mit der richtigen Passphrase löste das Problem sofort. Das Löschen dieses Eintrags (aus dem "Login" -Schlüsselring) und das erneute Eingeben der Passphrase an dieser ersten Eingabeaufforderung (und Aktivieren des entsprechenden Kontrollkästchens) löst dies ebenfalls. Jetzt erhält der Agent die richtige Passphrase aus dem beim Anmelden entsperrten Schlüsselring mit dem Namen "login" und fragt weder nach der Passphrase noch "verweigert den Betrieb". Natürlich YMMV.quelle
Was hier funktioniert hat: auf dem Client
1) ssh-add
2) ssh-copy-id user @ server
Die Schlüssel wurden vor einiger Zeit mit "ssh-keygen -t rsa" erstellt. Ich habe die Fehlermeldung ausgetauscht, weil ich meinen öffentlichen ssh-Schlüssel vom Client auf den Server kopiert habe (mit ssh-id-copy), ohne zuerst ssh-add auszuführen. da ich fälschlicherweise angenommen hatte, ich hätte sie einige Zeit zuvor hinzugefügt.
quelle
Kurzer Hinweis für diejenigen, die kürzlich ein Upgrade auf die "moderne" SSH-Version [OpenSSH_8.1p1, OpenSSL 1.1.1d FIPS, 10. September 2019] durchgeführt haben - geliefert mit Fedora 31, scheint keine alten DSA SHA256-Schlüssel mehr zu akzeptieren (meine sind datiert 2006!) - hat einen neuen rsa-Schlüssel erstellt, öffentlich zu autorisiert hinzugefügt, privat auf dem Client, und alles funktioniert einwandfrei.
danke für frühere vorschläge, vor allem das ssh -v war sehr nützlich
quelle