Ich richte meinen Linux-Server so ein, dass Verbindungen von meinem Heim-PC akzeptiert werden, indem ich den von PuTTYgen generierten öffentlichen Schlüssel zur authorized_keys
Datei hinzufüge .
Jetzt versuche ich, eine Verbindung zu demselben Computer herzustellen, diesmal jedoch von einem anderen Ubuntu-Computer. Ich muss denselben privaten Schlüssel verwenden (aus einem seltsamen Grund, frag nicht ..) und weiß nicht genau, wie ich ihn auf meinem Ubuntu-Client installieren soll.
Muss ich es in ein anderes Format konvertieren?
id_rsa
Datei erhalten (durch Konvertieren des Schlüssels in PuTTYgen)Zufällig musste ich das einfach tun. Sie müssen die Schlüssel in das OpenSSH-Format konvertieren. Der Befehl dafür lautet:
dann kannst du den inhalt von
openssh_key
in.ssh/authorized_keys
genauso kopieren wie mit einem normalen ssh schlüssel.Die
-i
Option ist diejenige, die angibtssh-keygen
, die Konvertierung durchzuführen. Die-f
Option gibt an, wo sich der zu konvertierende Schlüssel befindet.Dies funktioniert für unverschlüsselte Schlüssel. Der öffentliche Schlüssel ist unverschlüsselt, der private wahrscheinlich verschlüsselt. Ich bin mir nicht sicher, ob es eine Möglichkeit gibt, den privaten Schlüssel zu entschlüsseln, zu konvertieren und dann erneut zu verschlüsseln. Es kann durchaus einfacher sein, neue Schlüssel zu verwenden, wie die andere Antwort nahelegt (und ich würde empfehlen, diese zu verwenden,
ssh-agent
obwohl sie zur aktuellen Ausgabe orthogonal sind).quelle
uudecode failed
), muss folgen Wie mit PuttyGen (Windows) erzeugte SSH-Schlüsselpaare in Schlüsselpaare konvertiert werden, die von ssh-agent und KeyChain (Linux) verwendet werdenputtygen_key
sollte Ihr öffentlicher Schlüssel sein, nicht der private Schlüssel (* .ppk).Andrew Stacey erklärte, wie man die Schlüssel unter Linux in das OpenSSH-Format konvertiert.
Wenn Sie dasselbe unter Windows tun möchten, gehen Sie folgendermaßen vor:
quelle
So können Sie Ihre Putty-Schlüsselpaare in Ubuntu als OpenSSH-Schlüssel wiederverwenden:
Da der Zweck von Schritt 4 darin besteht, Ihren öffentlichen Schlüssel zu * ~. / Ssh / authorized_keys * hinzuzufügen, können Sie Ihren geheimen Putty-Schlüssel wie folgt verwenden, anstatt 4 als Zwischenschritt auszuführen:
quelle
mykey-pub.ppk
ist ziemlich verwirrend, da die.ppk
Datei ein völlig anderes Format hat und für Schlüsselpaare (nicht nur für öffentliche Schlüssel) verwendet wird.puttygen: unknown output type `private‐openssh'
undputtygen: cannot handle more than one input file
so kopierte ich die genauen Zeichen aus dem Quellcode und benannte meinen öffentlichen Schlüssel in etwas völlig anderes umPuTTY / PuTTYgen verwendet ein eigenes proprietäres Format für das Schlüsselpaar. Es funktioniert nicht unter Linux, wo das OpenSSH-Format der Schlüssel vorherrscht.
In PuTTYgen können Sie einen öffentlichen Schlüssel im von der OpenSSH-
authorized_keys
Datei verwendeten Format direkt anzeigen (und kopieren + einfügen) .Mit der Schaltfläche Save public key können Sie den öffentlichen Schlüssel im
.pub
Format (RFC 4716) speichern . Unter Linux heißt die Datei normalerweiseid_rsa.pub
(oderid_dsa.pub
). Aber das wird normalerweise nicht benötigt.Verwenden Sie den Befehl Konvertierungen> OpenSSH-Schlüssel exportieren, um den privaten Schlüssel im OpenSSH-Format zu exportieren . Unter Linux heißt die Datei normalerweise
id_rsa
(oderid_dsa
) und wird in einem.ssh
Ordner gespeichert .Siehe das offizielle Using PuTTYgen, den PuTTY-Schlüsselgenerator .
Sie können auch eine Linux-Version von PuTTYgen verwenden, um die Konvertierung durchzuführen. Die Linux-Version ist im Gegensatz zur Windows-Version eine Befehlszeile.
Siehe Linux-
puttygen
Manpage .quelle
Ich habe noch eine klare Lösung gefunden.
Wenn Sie
puttygen
einen Schlüssel erstellen, navigieren Sie zum Hauptmenü - Konvertierung und klicken Sie auf openssh-Schlüssel exportierenDer Dateiinhalt beginnt und endet mit
für root-Benutzer Kopieren Sie diese Schlüsseldatei nach
/root/.ssh/
asid_rsa
oderid_dsa
für andere Benutzer Kopieren Sie diese Schlüsseldatei nach
/home/user/.ssh/
asid_rsa
oderid_dsa
Hinweis :
authorized_keys
.quelle
* * Seien Sie vorsichtig und vergewissern Sie sich, dass Sie über die Konsole Zugriff auf die Box haben. Wenn Sie dies nicht richtig machen, können Sie erst dann wieder sshen, wenn Sie es über die Konsole reparieren.
Der Prozess ist viel einfacher als Sie denken. Laden Sie das in puttygen erzeugte öffentliche / private Schlüsselpaar erneut. In puttygen sehen Sie in der Mitte des Bildschirms ein Fenster mit der Aufschrift "Öffentlicher Schlüssel zum Einfügen in die Datei Open SSH authorized_keys:".
Markieren Sie den gesamten Inhalt des Felds und drücken Sie Strg-C, um es zu kopieren.
SSH in deine Linux-Box und füge es in die Datei "/home/username/.ssh/authorized_keys" ein. Ich bevorzuge Nano und klicke einfach mit der rechten Maustaste, um es einzufügen. Stelle sicher, dass alles in einer Zeile bleibt.
Ändern Sie die Datei / etc / sshd_config nach Bedarf und starten Sie den sshd-Dienst neu: "service ssh restart"
Wenn Sie ein Beispiel für eine sshd_config-Datei benötigen, lassen Sie es mich wissen und ich kann meine posten.
Ich habe dies auf Ubuntu 8.04, 10.04 und 12.04 LTS Server gemacht und es funktioniert reibungslos.
quelle
Ich bin nicht sicher, ob dieser Thread noch aktiv ist, aber ich bin auf ein ähnliches Problem mit der Windows 10-Jubiläumsversion gestoßen, die jetzt den Ubuntu-Kernel unterstützt. Ich benutze Putty früher, um mich mit einem Linux-Rechner zu verbinden. Verwenden Sie zum Generieren von id_rsa im Linux-Format puttykeygen und laden Sie Ihren privaten Schlüssel für putty. Klicken Sie dann auf conversion und wählen Sie die zweite Option aus.
Putty KeyGenerator-Konvertierungen
Öffnen Sie die neu generierte Schlüsseldatei und kopieren Sie den gesamten Inhalt. Stellen Sie sicher, dass der Inhalt mit Folgendem beginnt: ----- BEGIN RSA PRIVATE KEY ----- und endet mit ----- END RSA PRIVATE KEY -----
vi id_rsa in ihrem ~ / .ssh verzeichnis und fügen sie den kopierten inhalt ein. dies ist erforderlich, da linux sonst den inhalt der datei nicht versteht.
Das ist alles, versuchen Sie es mit ssh auf dem Remote-Server, es sollte funktionieren.
quelle