SSH Private Key Import

kosta88

Aktives Mitglied
Thread Starter
Dabei seit
10.06.2023
Beiträge
103
Reaktionspunkte
11
Hallo zusammen,
um VSCode zu verwenden, benutze ich SSH Keypairs. Eine Möglichkeit wäre die Keys direkt im Terminal mittels ssh-keygen zu generieren, und dann entsprechend im Remote Desktop Manager importieren und zum SSH Host kopieren. Aber, wenn ich die Keys im RDM generiere, habe ich keine Dateien, und Mac kennt die nicht und sie sind natürlich nicht im SSH Agent.
Also simple Frage, abgesehen von ssh-add Befehls, wo man die Dateien manuell im ~/.ssh/* erstellen soll und dann automatisch mit ssh-add importiert, gibt es eine andere Möglichkeit die privaten Keys zu importieren?
OS ist Ventura 13.4.1.
Danke
Kosta
 
Müsste an sich auch der Schlüsselbund machen.
 
Jo, hab schon hingeschaut, finde aber keinen Weg... kann sie kopieren oder exportieren, aber finde kein Import für die Keys selbst.
 
Den generierten Key in .ssh kopieren, dann

Code:
chmod 0700 ~/.ssh/name_des_keys

in VSCode dann die SSH-Erweiterung unten links anklicken, in die Eingabe oben dann reinkopieren und Enter:
Code:
ssh -p -i ~/.ssh/name_des_keys user:h.o.s.t
 
Jep, das mit dem ssh-add wie gesagt kenne ich. Wollte ich vermeiden, mit der Hoffnung dass etwas via GUI möglich ist - im Sinne von privaten Key kopieren und einfügen irgendwo. Aber eine Sache...
Würdet ihr eher einen Schlüsselpaar für alle Server verwenden, oder generieren einen pro Server? Das zweite ist mir ehrlich gesagt sympatischer, denn bei ersten muss der eine Key kompromittiert werden, und das war's halt. Gleich wie ein Passwort für alle...

Zweites Problem den ich gerade habe, Mac verweigert mir gerade allgemein den Import der privaten Keys. Sagt immer invalid format. Schon mit ED25519 und RSA 4096 versucht. Hat nur mit dem ersten geklappt. ssh-add -D habe ich versucht.
 
Das Format bezieht sich wohl eher auf das Dateiformat bzw Kodierung als Textdatei.
 
Wenn ich es im Terminal mit nano xxx erstelle und den Inhalt des Keys einfüge, dann dürfte es keine Probleme mit dem Dateiformat oder Kodierung geben?
 
Es ist mir aufgefallen dass wenn ich den Key im RDM generiere, hat es 3 volle Zeilen und eine kürzere Zeile. Wenn ich es im Terminal generiere, hat es 4 Zeilen und eine kürzere. Den Key der mit ssh-keygen generiert wurde, kann ich importieren.
Auch wenn ich jetzt so fortgehen werde, wäre ich sehr gespannt, warum es mit den Keys aus dem RDM nicht klappt. Ist denke ich das Thema für das Devolutions Team.
 
äähh, so ganz verstehe ich deinen Weg bzw. deine Probleme nicht.

Soweit ich es sehe, willst du dich auf einem remote mit einem ssh-key einloggen, oder? Das heißt ja dann auch, dass du dort einen ssh-Zugang schon haben musst.

Das ganze geht eigentlich recht einfach, so ähnlich wie du es mit ssh-keygen voirhattest.

a) auf dem remote muss dein ssh-Zugang erst mal mit User/Passwort laufen
b) lokal: ssh-keygen
c) den public key auf remote bringst du dann ganz einfach mit: ssh-copy-id user@remote.domain Da musst du dich dann regulär mit deinem remote-ssh-Passwort authentifizieren. Solltest du noch nie per ssh auf remote gewesen sein, musst du die Identität des remote bestätigen, damit der in die ~/.ssh/known_hosts eingetragen wird.

Anschließend kannst du einfach mit ssh user@remote.domain dich auf remote einloggen und wenn du willst, dort nun auf dem remote Host das Passwort-Login deaktivieren.

Du musst also nicht irgendwas manuell hin- und her kopieren.
 
SSH mit Passwort und SFTP auf den Servern nutze ich schon sehr lange. Jedoch habe ich mir das Thema OpenSSH (mit Schlüsseln) erst gestern das erste Mal angeschaut. Daher bitte um Verständnis. Alles ist "einfach" wenn man es einmal kann.
Und das Thema SSH-Keys ist erst jetzt aufgegangen, als ich VSCode mehr einsetzen werde. Sonst hatte ich mit RDM kaum Bedarf danach.

Ich habe auch zwei getrennte Admin-Rechner, von denen ich mich verbinde und muss diese "in sync" halten. Und damit es überhaupt einfach wird: Windows und MacOS. Daher auch meine Überlegungen wie ich die Keys aufbewahre. Meine Tool-Wahl für Vieles ist RDM, jedoch schien es dort nicht wirklich zu funktionieren, siehe vorige Posts. Daher muss ich die Keys ins RDM manuell importieren.

ssh-copy-id ist mir über dem Weg gelaufen, konnte mir aber noch nicht anschauen. Ich bin der Typ der zuerst gerne Sachen manuell macht um die Wege kennenzulernen und dann die Automatismen einsetze. Genauso die Sache mit known_hosts. Du scheinst mir ein Linux-Profi zu sein, was schön und gut ist, ich bin allerdings weit davon entfernt.

Danke jedoch für die Tipps und Erklärung, sehr geschätzt.
 
Würdet ihr eher einen Schlüsselpaar für alle Server verwenden, oder generieren einen pro Server? Das zweite ist mir ehrlich gesagt sympatischer, denn bei ersten muss der eine Key kompromittiert werden, und das war's halt. Gleich wie ein Passwort für alle...
Kompromittiert werden müsste der private Schlüssel und der verlässt normalerweise deinen Rechner nie. Wenn Du für jeden Server einen separaten hättest, lägen die wahrscheinlich eh alle in ~/.ssh/ auf deinem Mac. Wenn da jemand rankommt, musst Du davon ausgehen, das alle kompromittiert sind. Macht also keinen großen Unterschied. Was relativ gut gegen Kompromittierung hilft, ist z.B. Secretive. Damit generierst und speicherst Du den privaten Schlüssel in der “Secure Enclave“ des Macs. Die sind dann aber gar nicht portabel. Und die Hardware unterstützt nur ECDSA, keine RSA-Keys. Manche Server kommen damit nicht klar.

Für genau ein Schlüsselpaar spräche, das damit sshkey = Benutzer wäre, also vergleichbar zu Single-Sign-On (wie “Login mit Apple“)

Eine bequeme Möglichkeit, private SSH-Schlüssel über mehrere Client-Rechner zu synchronisieren, wäre z.B. 1password. Die Software kann inzwischen auch ssh-keys speichern und hat einen optional einschaltbaren SSH-Agent. Wäre sehr bequem, hängt aber davon ab, ob Du der Software und deren Sync genug Vertrauen entgegenbringst.
 
Danke dir für die Meinung, macht Sinn. Ich habe mittlerweile "nur" zwei Keys, einen RSA und einen ED25519. Und 1Password tät ich zwar vertrauen, benutzte ich früher, aber bin aktuell auf RDM und KeepassXC, und fahre damit gut. RDM hat einen Agenten, ob das funkt, mal sehen...
 
Strongbox (ein Keepass-Client) kann ebenfalls mit SSH-keys hantieren und bietet ebenfalls einen SSH-Agent.
 
Danke euch. Also, ich habe mittlerweile alles, bis auf einem Punkt, funkionierend zu meiner vollsten Zufriedenheit:
Wie kriege ich es hin, die Passwörter und/oder die privaten Keys ins OSX Keychain rein? Ziel: die Keys samt Kennwörter bleiben auch nach dem Reboot geladen.
Natürlich etwas gegoogelt, und das habe ich konfiguriert:
~/.ssh/config
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/private-ssh-key
IdentityFile ~/.ssh/another-private-ssh-key
Und ausgeführt:
Code:
ssh-add --apple-use-keychain --apple-load-keychain ~/.ssh/id_rsa
Code:
ssh-add --apple-use-keychain --apple-load-keychain ~/.ssh/id_ed25519

Trotzdem nachdem Reboot sind die Keys aus dem ssh raus,
Code:
ssh-add -l
zeigt nichts mehr an.

OS: Ventura 13.5.1

Wenn ich Keychain öffne, finde ich unter Keys nichts dazugehöriges, egal in welchen Bereich.

Idee was mir da noch fehlt?
 
warum willst du die ssh keys im Schlüsselbubd? Die sollten in ~/.ssh bleiben.
 
warum willst du die ssh keys im Schlüsselbubd? Die sollten in ~/.ssh bleiben.
Die Keys selbst nicht. Sondern dass Passwort für die Schlüssel. Und das automatische Laden der Schlüssel. Ich muss nach jedem Neustart ssh-add ausführen und das Passwort eintippen.
Einer würde glauben dass so eine triviale Sache einfach zu lösen sei...
Ich belasse es also, und lade die Keys nach jedem Neustart erneut - was aber nicht all zu oft passiert. Das ist doch kein Windows ;-)
 
Die Keys selbst nicht. Sondern dass Passwort für die Schlüssel. Und das automatische Laden der Schlüssel. Ich muss nach jedem Neustart ssh-add ausführen und das Passwort eintippen.
Einer würde glauben dass so eine triviale Sache einfach zu lösen sei...
Ich belasse es also, und lade die Keys nach jedem Neustart erneut - was aber nicht all zu oft passiert. Das ist doch kein Windows ;-)
Wieso hast du überhaupt ein Passwort für deinen private.key angelegt? Welchen Mehrwert erhoffst du dir davon? Und warum willst du den einzig theoretisch möglich Vorteil zunichte machen indem du das PAsswort automatisch eintragen lassen willst? Es macht schon Sinn, dass das nicht geht, auch wenn der Vorteil eines Passowortes für den private key eher im Bereich Placebo liegt.

Also, was erhoffst du dir davon?

Edit:

Für was genau brauchst du RDM? So richtig verstehe ich dein Anwendungsszenario immer noch nicht. Ich habe irgendwie das Gefühl, dass du dir da was unnötig kompliziert zusammen baust, was du wahrscheinlich (so wie ich es verstehe) gar nicht brauchst.
 
Zuletzt bearbeitet:
Zurück
Oben Unten