Vor einiger Zeit habe ich einen Server in AWS eingerichtet und deren generierten SSH-Schlüssel verwendet. Ich habe den Schlüssel für Lastpass gespeichert und ihn von dort zuvor erfolgreich abgerufen und zum Laufen gebracht. Nachdem ich es heute noch einmal versucht habe, kann ich es nicht zum Laufen bringen.
-rw------- 1 itsgreg users 1674 Jun 6 12:51 key_name
Ich habe versucht ssh -i key_name
, ssh-keygen -f key_name
aber nichts funktioniert, ich bekomme immer diese Fehlermeldung:
Load key "key_name": invalid format
Gibt es eine Möglichkeit, dies zu beheben?
----BEGIN RSA PRIVATE KEY-----
und endet mit-----END RSA PRIVATE KEY-----
. Außerdem funktionierte es früher.Was ich getan habe, um dieses Problem zu beheben, ist, dass ich die PPK-Datei mit konvertiere
PuttyGen
.Laden Sie zuerst das
urkey.PPK
und klicken Sie dann im Konvertierungsmenü auf In Openssh-Dateiformat exportieren. Es wird eine Newkey-Datei erstellt.jetzt,
ssh -i "newkey" [email protected]
Getan. Ich hoffe es hilft.
quelle
Ich habe openssh gebeten, eine bestimmte Identitätsdatei zu verwenden, indem ich sie in der Datei .ssh / config angegeben habe.
Die ursprüngliche Arbeitskonfiguration hatte
Dies funktionierte nicht mehr ohne Änderungen. Nach einigem Überlegen habe ich den "Pfad zur öffentlichen Schlüsseldatei" oben durch "Pfad zur privaten Schlüsseldatei" ersetzt. Das hat funktioniert. Der Grund dafür ist, dass sowohl öffentliche als auch private Schlüsseldateien gemäß dem RSA-Algorithmus große Peudoprime-bezogene Zahlen aufweisen. Wenn Sie die private Schlüsseldatei durch eine öffentliche Schlüsseldatei ersetzen, werden diese kryptografischen Nummern nicht korrekt aus dem in den Schlüsseldateien gespeicherten base64-Block extrahiert. Es scheint, dass einige Versionen von ssh die .pub-Erweiterung herausfinden und sie verwenden können, um die richtige private Schlüsseldatei zu identifizieren - und andere Versionen tun dies nicht. Dies ist eine weitere Möglichkeit, wie dieser Fehler auftreten kann. Hoffe es hilft jemandem.
quelle
config
Datei mitpath_to_public_key
und alles funktionierte. Als der Mac jedoch einen harten Neustart durchführte und ein paar Tage später versuchte ich, einen Neustartgit push
durchzuführen, wurde der oben angegebene Fehler angezeigt. Aber als ich es jetzt geändert habe,path_to_private_key
funktionieren die Dinge ... Hmmm. Nicht sicher warum ..Ich hatte das gleiche Problem, und es stellte sich heraus, dass ich aus irgendeinem Grund Zeilentrennzeichen im Windows-Stil (CRLF) in der Datei hatte.
Außerdem muss die Datei mit einem einzelnen LF enden.
Die Dinge wieder in Ordnung zu bringen.
quelle
dos2unix
dient der Befehl zum Konvertieren von CRLF-Zeilenumbrüchen (Windows-Stil) in LF-Zeilenumbrüche (Linux-Stil).Sie sollten Ihren PPK-Schlüssel in OpenSSH-Schlüssel konvertieren
So machen Sie es :
quelle
Ich bin heute gerade darauf gestoßen, als ich einige Git-Tagging-Tools für meine CI-Pipeline geschrieben habe.
Hier war der Unterschied zwischen meinen beiden Schlüsseln:
Ich habe meinen Code so geändert:
Und jetzt funktioniert mein SSH-Schlüssel.
TL; DR - Ich denke, Sie müssen eine neue Zeile am Ende Ihres privaten Schlüssels haben.
quelle
In meinem Fall stellte sich heraus, dass ich Zeilenumbrüche zwischen den Start- / End- "Headern" und den Schlüsseldaten hatte:
Entfernen Sie die zusätzlichen neuen Zeilen, so wurde es
mein problem gelöst.
quelle
Verwenden Sie Ihren privaten Schlüssel anstelle des öffentlichen Schlüssels.
quelle
Ich hatte dieses Problem, weil ich einen Schlüssel in ~ / .ssh hatte, der eigentlich ein ungültiges Format war, und ich hatte viele Schlüssel, was bedeutete, dass SSH sie alle ausprobierte, obwohl ich meine Identitätsdatei im Befehl spezifizierte. Es scheitert einfach, weil ich glaube, es können nur 5 Schlüssel ausprobiert werden, und dann habe ich den Fehler erhalten, der legitim war, nur für die falsche Identitätsdatei. Die Lösung war, nur
IdentitiesOnly yes
in meiner ~ / .ssh / config zu verwenden.quelle
Ich hatte diesen Fehler, weil am Anfang der Schlüsseldatei eine leere Zeile stand. Leicht zu übersehen, wenn Sie es
cat
ausprobieren.quelle
Dies ist auch der Fehler, den ssh (zumindest einige Versionen) ausgibt, wenn Sie eine Passphrase auf Ihrem privaten Schlüssel haben und die Passphrase falsch eingeben, wenn Sie versuchen, eine Verbindung herzustellen.
(Dies geschah insbesondere mit: OpenSSH_7.6p1, LibreSSL 2.6.2, dem integrierten SSH für Mac OS X 10.13.6.)
Stellen Sie also sicher, dass Sie die richtige Passphrase verwenden und die FESTSTELLTASTE deaktiviert ist.
quelle
Stellen Sie sicher, dass Sie Ihren PRIVATEN Schlüssel umbenennen und die betreffende Dateierweiterung entfernen.
Schritte, die ich gemacht habe
Erstellen Sie Ihren öffentlichen Schlüssel:
Stellen Sie sicher, dass Sie sich in demselben Verzeichnis befinden, in dem Sie den privaten Schlüssel haben
So erstellen Sie den öffentlichen Schlüssel:
Stellen Sie sicher, dass der PUBLIC-Schlüssel die Dateierweiterung .pub hat
Geben Sie anschließend aus Sicherheitsgründen die entsprechenden Berechtigungen an:
DANN der wichtigste Teil und der Grund, warum Sie den Fehler "ungültiges Format" bekommen haben
Stellen Sie sicher, dass Sie Ihren PRIVATEN Schlüssel umbenennen und die Dateierweiterung entfernen:
Entfernen Sie die .pem-Datei von Ihrem privaten Schlüssel.
oder wenn Sie auf einem Windows-Computer den privaten Schlüssel umbenennen, entfernen Sie einfach den gleichen Namen
.pem
quelle