Forum: PC-Programmierung Public Key in SSH Key umwandeln


von Lefty (Gast)


Lesenswert?

Hallo zusammen,

ich möchte per SSH auf einen Server zugreifen und würde gerne den Host 
authentifizieren, indem ich z.B. den öffentlichen SSH Key vom Server in 
meiner Known Hosts hinterlege oder initial den Fingerprint vergleiche.
Nun habe ich eine vom Dateinamen her wenig Aussagekräftige .pub-Datei 
zugesendet bekommen, in der sich jedoch scheinbar kein direkt 
übertragbarer SSH-Key befindet, sondern eine längere verschlüsselte 
Zeichenfolge befindet:
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1
...etwas mehr als 40 Zeilen á 64 Zeichen Buchstabensalat...
-----END PGP MESSAGE-----

Preisfrage:
Ist das der verschlüsselte und Base64 codierte PublicKey oder etwas 
anderes?
Und lässt sich der Key von mir in einen Fingerprint oder einen SSH-Key 
für die Known Hosts umwandeln, oder muss ich dafür den Absender nochmal 
anschreiben?
Und wie kann man eigentlich erkennen, um was genau es sich bei diesem 
Zeichensalat handelt, wenn der Dateiname absolut Null Hinweise darauf 
gibt?

Betriebssystem ist OS X.

Vielen Dank,
Lefty

von c.m. (Gast)


Lesenswert?

das geht normalerweise anders herum.
der client erstellt einen public key und kopiert ihn in die 
authorized_keys des servers.

was du jetzt hast ist, das der server sich bei dir (client) einloggen 
kann, wenn du den gelieferten .pub key in deine authorized_keys 
eintägst.

beispiel:
http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Das ist ein PGP Key zum Verschlüsseln von Emails und hat mit SSH gar 
nichts zu tun.

: Bearbeitet durch User
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

c.m. schrieb:
> in deine authorized_keys eintägst.

Lefty hat doch ganz klar geschrieben, dass er den öffentlichen Schlüssel 
in die .known_hosts eintragen will! Dies ist doch die korrekte 
Vorgehensweise, um eine Authentifizierung des Servers durchzuführen, 
denn der Server authentisiert sich, indem er seine Nachrichten mit 
seinem geheimen Schlüssel signiert.

Früher(tm), d.h. bei älteren SSH-Version, waren die Einträge in 
.known_hosts gut lesbar, aber seit einiger Zeit sind die darin 
enthaltenen Hostnamen gehasht. Deswegen kann man z.B. Einträge nur noch 
mit "ssh-keygen" manipulieren, z.B. mittels "-R" löschen. Jedoch ist es 
nach wie vor möglich, die Inhalte von erhaltenen id_rsa.pub einfach 
zeilenweise anzuhängen, was aber ggf. die Hostnamen offenbart. Daher 
kann man die Inhalte der known_hosts auch noch nachträglich hashen, d.h. 
mit "ssh-keygen -H".

Statt aber die Einträge manuell hinzuzufügen, kann man natürlich auch 
auf das automatische Hinzufügen setzen und die Hashwerte anschließend 
manuell vergleichen.

Die Verwendung eines GPG-Schlüssels für SSH wird hier beschrieben, 
allerdings für das Login und nicht die Authentifizierung des Servers:

https://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Md M. schrieb:
> Das ist ein PGP Key zum Verschlüsseln von Emails und hat mit SSH gar
> nichts zu tun.

PGP/GPG hat noch gänzlich andere Verwendungszwecke als die 
E-Mail-Verschlüsselung. Bei Deinem Halb- bzw. Zehntelwissen sollte man 
sich also mit solch generellen Aussagen deutlich zurückhalten. Ich habe 
in meinem anderen Beitrag auch einen entsprechenden Link aufgeführt.

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Andreas S. schrieb:
>> Das ist ein PGP Key zum Verschlüsseln von Emails und hat mit SSH gar
>> nichts zu tun.
>
> PGP/GPG hat noch gänzlich andere Verwendungszwecke als die
> E-Mail-Verschlüsselung.

Ist mir klar.

Ich wollte eigentlich auch was anderes schreiben, nämlich als Antwort 
auf

> Und wie kann man eigentlich erkennen, um was genau es sich bei diesem
> Zeichensalat handelt

dass es sich wohl um eine

> PGP MESSAGE

und keinen key handelt.

Andreas S. schrieb:
> Bei Deinem Halb- bzw. Zehntelwissen sollte man
> sich also mit solch generellen Aussagen deutlich zurückhalten.

Kack wen anders an. Ja, war ein bisschen generell. Ok?

: Bearbeitet durch User
von Sven B. (scummos)


Lesenswert?

Andreas S. schrieb:
> Md M. schrieb:
>> Das ist ein PGP Key zum Verschlüsseln von Emails und hat mit SSH gar
>> nichts zu tun.
>
> PGP/GPG hat noch gänzlich andere Verwendungszwecke als die
> E-Mail-Verschlüsselung. Bei Deinem Halb- bzw. Zehntelwissen sollte man
> sich also mit solch generellen Aussagen deutlich zurückhalten. Ich habe
> in meinem anderen Beitrag auch einen entsprechenden Link aufgeführt.

Er hat aber Recht. Was der TO da hat ist offensichtlich PGP, und dazu 
wie schon gesagt auch eine PGP-verschlüsselte Nachricht und erstmal kein 
Key. Ja, man kann PGP-Keys mit SSH benutzen aber das haben vielleicht 
fünf Leute auf der Welt je gemacht und es ist bestimmt nicht das was der 
TO will ...

Wahrscheinlich hat dir irgendein Tool oder Anbieter den (ssh) private 
key verschlüsselt zugeschickt ... keine Ahnung. Ist alles komisch. Was 
du da hast ist jedenfalls eine PGP-verschlüsselte Nachricht, die du nur 
anschauen kannst wenn du den dazu passenden (pgp) private key hast.

Die normale Variante ist, ssh-keygen lokal (!) aufrufen und dann nur den 
Public Key auf den Server kopieren, in .ssh/authorized_keys. Wenn das 
jemand anders macht, ist die normale Variante dass du den Key generierst 
und ihm dann den public-Teil per Mail schickst, nicht andersrum.

: Bearbeitet durch User
von c.m. (Gast)


Lesenswert?

Sven B. schrieb:

> Die normale Variante ist, ssh-keygen lokal (!) aufrufen und dann nur den
> Public Key auf den Server kopieren, in .ssh/authorized_keys.

neuerdings mit ssh-copy-id - ein rumeditieren mehr nötig.

von Lefty (Gast)


Lesenswert?

Hallo zusammen,

also der Server meldet sich mit:
ECDSA key fingerprint is SHA256 ...
Aber so wie ich euch verstehe muss ich eh nach dem richtigen SSH-Key 
fragen, weil sich das nicht mal eben umwandeln lässt.

Vielen Dank für die Unterstützung erstmal.

Viele Grüße
Lefty

von Nein zu FB (Gast)


Lesenswert?

Lefty schrieb:
> also der Server meldet sich mit:
> ECDSA key fingerprint is SHA256 ...

Der zeigt dir seine "Kennung". Die solltest du auf einem extra Weg 
überprüfen, indem du z.B. den den Serverbetreiber nach dieser Kennung 
fragst. Damit wird nur verhindert, dass beim initialen Aufbau bereits 
jemand die Verbindung manipuliert.


Hier hat das ein Webhoster ganz nett erklärt:
"Hier wirst Du beim ersten Login aufgefordert den Fingerprint des Hosts 
(in diesem Fall amnesia.uberspace.de) durch Klicken auf Ja oder Yes zu 
bestätigen. Bitte schau auf deinem Datenblatt (Login erforderlich) nach; 
wir zeigen dir dort an, welche Fingerprints korrekt sind. Bekommst du 
einen anderen Fingerprint angezeigt, wende dich bitte an uns, damit wir 
das klären können. Bestätigst du den Fingerprint, wird dieser nun in der 
Konfiguration von PuTTY dauerhaft hinterlegt."
https://wiki.uberspace.de/system:ssh

von Fritz G. (fritzg)


Lesenswert?

DEIN Betriebssystem ist OS X?
Dann mach einfach ein ssh auf den Server. Bei der Frage ob du 
weitermachen willst, tippe yes ein.
Dann wird der public-Teil des Servers in deiner ~/.ssh/known_hosts 
gespeichert:
1
ssh localhost
2
The authenticity of host 'localhost (::1)' can't be established.
3
ECDSA key fingerprint is SHA256:3Unzi1TI/EPezk/6J22ilCF5KfHDXs2rnzLSeOyiMww.
4
Are you sure you want to continue connecting (yes/no)? yes
5
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

Willst du dich allerdings dort ohne Passwort einloggen, ist das schon 
oben beschrieben (ssh-keygen und ssh-copy-id).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.