SSH mit keys einrichten

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
Cobr4
Beiträge: 34
Registriert: 10.06.2004 12:39:21
Kontaktdaten:

SSH mit keys einrichten

Beitrag von Cobr4 » 01.11.2004 21:21:15

Also, ich will mich von meinem Windows Rechner per SSH 2 auf dem Debian Rechner einloggen. Das klappt auch. Nun will ich das ganze ohne PW abfrage haben. Sprich mit Keys.
Aus dem Windows Rechner rennt Putty. Ich bin soweit gekommen:

Auf dem WIndows rechner mit puttygen public und private key erstellt. private key in die authorized_keys kopiert und nach /root/.ssh/authorized_keys aufm linux rechner kopiert. Einloggen sowiti funtz auch, ich werde halt nach dem Pass phrase der private passes gefragt. eingeben, rennt...

Nun will ich das ganze OHNE irgendwelche eingaben haben. Also muss wohl noch der Public Key zum Einsatz kommen. Nur wie und wo?
In dem Debian Howto werd ich so ab der Mitte nicht mehr schlau. In anderen Howtos steht nur was von linux auf linux. Noch dazu soll wohl ne inkompatibilität zwischen Putty und open ssh Keys sein oder so...

Also: wo muss ich den public key erzeugen und wo muss der hin ?

Die ssh config is angepasst: also passwordauth no usw....

Vielleicht kann mir auch einer ma grad erklaeren wofuer der public key.. ich peil das zusammenspiel von public und private net so ganz

Reo
Beiträge: 185
Registriert: 28.10.2004 21:11:00

Beitrag von Reo » 01.11.2004 21:30:19

Ich kann Dir zu dem Problem nichts sagen, aber ich kann sagen, wofür den Private und der Public Key ist, weil ich das mal selbst für die Uni proggen musste.

Also der Public-Key ist, wie er schon sagt, Public. Ich mache mal das Beispiel per Chat oder per eMail. Jeder kann den Public-Key bekommen. Mit ihm wird die Nachricht verschlüsselt und dann an Dich gesendet.
NUR Du hingegen hast den Private Key und den darfst Du auch auf KEINEN Fall weitergeben. Denn nur mit diesem Private Key ist es möglich, die Nachricht wieder zu entschlüsseln.

Wenn ich Dir nun also meinen Public-Key gebe, dann könntest Du mir verschlüsselt eine Nachricht schicken. Diese kann aber nur ich mit meinem Private Key wieder entschlüsseln.


Soweit zur Theorie. Wie das nun aber mit ssh und sepeziell mit der Konfig in Debian geht, kann ich Dir leider nicht sagen. Mal davon abgesehen, dass es meiner Meinung nach nicht sinnvoll ist einen Login komplett ohne Passwort zu erlauben. Aber sicherlich hast Du Deinen Grund dafür. Weiß aber nicht ob und wie das geht. Sorry.

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 01.11.2004 22:08:16

Das 'öffenen' des Keys ist Sache des Clients , nicht des Servers. Du brauchst einen entsprechenden Dienst, der die ssh-key passphrase für Dich im Speicher hält.

Unter Linux kannst Du einfach ein

Code: Alles auswählen

ssh-add
machen um die passphrase Deines Defaultkeys einzugeben. Wenn Du dann danach ein ssh <hostname> machst, dann wird versucht den ssh Key mittels dieses Passwords zu öffnen.

Bei putty ist ein entsprechenden Tool dabei (pegeant.exe).

Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
Cobr4
Beiträge: 34
Registriert: 10.06.2004 12:39:21
Kontaktdaten:

Beitrag von Cobr4 » 01.11.2004 22:17:46

Okay, das mit pegeant laeuft.. aber dann habbich ja wieder en anderen programm auf. Und bei der Lösung kommt dieser öffentliche Key ja ma ueberhaupt net zum einsatz... langsam verwirrts mich ein wenig :)

oehm.. grad ma testweise den public key au der authbla_keys datei gelöscht.. nu klappts wieder net. Also DOCH öffentlicher key. Peil ich nich :D Wenn den doch nur der Server kennt, wo in der Verschlüsselung kommt der dann zum tragen ?

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 01.11.2004 22:35:05

Generell behalte ich meinen privaten Key. BZW den darf und sollte niemand anderes bekommen . Möchte ich mich jetzt zum Beispiel mit deinem Rechner per ssh zu verbinden, muß ich meinen public (öffentlichen) Key bei dir hinterlegen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 01.11.2004 22:38:31

So schwer ist das nicht :-)

Der öffentliche Key liegt auf dem Server (da, wo Du Dich hinverbinden willst). Der private (geheime) Key ist bei Dir auf dem Client. Damit jetzt nicht jeder, der irgendie an dem privaten Key kommt in Deinem Namen sich verbinden kann, ist der private Key noch durch eine passphrase geschützt. Bevor Du den also verwenden kannst um Dich damit bei dem Server auszuweisen mußt Du den noch unter Angabe der passphrase öffenen.

Damit hast Du jetzt letztlich die Eingabe des passwords auf dem Server durch die Eingabe der passphrase für den Key ausgetausch. Du könntest jetzt meinen, das Du da nichts gewonnen hast, da Du ja nun wieder ein Passwort eingeb mußt. Allerdings uist die Anmeldung per Key sicherer.

Um Dir das ständige eintipsen der Passphrase für den private Key abzunehmen gibts es nun (Clientseitig) den ssh-agent, welcher sozusagen den geöffenen privaten Key für Dich im Speicher hält und somit ssh den Zugriff ohne passphrase gestatet. Und halt ssh-add, um einen Key unter Angabe der passphrase an den ssh-agent zu übergeben.

Bei putty heißt das dann eben nicht ssh-agent sonder pegeant. Das sitzt recht praktisch bei mir immer im Systray und erlaupt schnellen Zugriff auf die vorkonfigurierten Hosts. (Und pscp kann damit auch umgehen)

Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
Cobr4
Beiträge: 34
Registriert: 10.06.2004 12:39:21
Kontaktdaten:

Beitrag von Cobr4 » 01.11.2004 22:40:11

nach der Definition duerfte ja mein private key auch net auf meinem Server liegen, sondern nur ein public. Mein private key sollte dann MEINEN (win dem fall) windows rechner nie verlassen. Aber der private ist ja in der authblabal_keys datei

Reo
Beiträge: 185
Registriert: 28.10.2004 21:11:00

Beitrag von Reo » 01.11.2004 22:42:46

Hmm?

Also der Public und der Privte Key gehören natürlich zusammen. Die kann man eigentlich nicht trennen. Trotzdem sind sie verschieden.

Stell Dir das so vor.
Du schickst was über die Leitung. Z.B. nen Chat-Eintrag oder nen Befehl über SSH.

So, Befehl: "ls -al"
Der Public-Key auf dem Client (also auf dem Rechner, wo SSH läuft und der den Befehl verschickt) verschlüsst das nun. Dabei kommt sowas raus (beispielsweise) "hz6V3§2jksfds"

Dies empfängt nun der Server. Wichtig ist eben, dass das über die Leitung läuft und wenn nun doch jemand das Abfängt, dann kann er damit überhaupt nichts anfangen, weil er es ja nicht entschlüssen kann.

Der Server empfängt nun den String: "hz6V3§2jksfds"
Mithilfe des Private-Key, den ja nur der Server kennt und den man nicht weitergeben darf, wird das wieder zurückverschlüsst. Der Server erkennt dann eben "ls -al".
So und das führt der Server nun aus.

Wie kommt man nun zu den Schlüsseln?
Nunja, das geht so. Der Server erstellt, wenn er das soll, also z.B. wenn ein SSH-Client eine Verbindung aufbauen möchte ein Key-Paar. Beispiel 12345 für den Public und gghh36 für den Private Key. Wie diese Schlüssel gebildet werden würde hier zu weit führen, aber wenn Du möchtest, dann gebe ich Dir gerne einen Algorithmus dazu. Aber das ist dann schon ziemlich hohe Mathematik.
Der SSH-Cleint möchte eine Verbindung, der Server generiert das Paar und speichert es ab. Der Server schickt nun den Public-Key zum Client. Dieser empfängt diesen Key und speichert ihn ab, damit er die Nachrichten, die er schicken möchte, verschlüsseln kann.
Nun kann der Client mit Hilfe des gespeicherten Public-Key Nachrichten verschlüsseln, über die Leitung an den Server schicken.

Naja, usw.
Das ganze passiert eigentlich im Hintergrund und die Software kümmert sich darum. Der User bekommt davon nicht viel mit. Außer, dass man eben mein ersten Verbinden eine Nachricht vom Putty (wenn über Windows) bekommt, dass er einen Key speichern möchte.


Ist es jetzt etwas klarer geworden?

Reo
Beiträge: 185
Registriert: 28.10.2004 21:11:00

Beitrag von Reo » 01.11.2004 22:46:05

Cobr4 hat geschrieben:nach der Definition duerfte ja mein private key auch net auf meinem Server liegen, sondern nur ein public. Mein private key sollte dann MEINEN (win dem fall) windows rechner nie verlassen. Aber der private ist ja in der authblabal_keys datei
Es gibt natürlich 2 Key-Paare. Einmal die, damit Du vom Server empfangen kannst. Da hat der Server den public1 und Du den private1 auf Deinem Rechner und umgekehrt, dass Du auch was senden kannst. Da kann man dann ein anderes Paar haben (und sollte dies auch). Da hast Du den Public2 und der Server den Private2 um Deine Nachrichten zu entschlüsseln.


Ach, das ganze ist eigentlich nicht schwer, wenn man es erstmal geblickt hat. Aber es ist irgendwie schwer zu erklären, wenn man es versucht. Also sorry, hoffe, dass wir es Dir jetzt verständlicher machen konnten.

Benutzeravatar
Cobr4
Beiträge: 34
Registriert: 10.06.2004 12:39:21
Kontaktdaten:

Beitrag von Cobr4 » 01.11.2004 22:47:04

Okay, vergesst alles... Das war ja der public key in dem puttygen fenster den ich per copy&paste in die authorized_keys datei kopiert hab...

Ich geh ma besser pennen... :roll:

Trotzdem danke, nu hab ich das gerafft mir den keys :)

Benutzeravatar
dominator
Beiträge: 790
Registriert: 26.08.2003 10:05:37
Wohnort: Neuerdings meistens im Bierparadies Oberfranken

Beitrag von dominator » 02.11.2004 08:13:05

Für Passwort-Faule gibt es ja unter Windows im Zusammenspiel mit Putty den "pageant" :idea:
gruss + viel erfolg

Michael
--
Aus aktuellem Anlass :
"Der Glubb is a Depp" - Fränkische Weisheit

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 02.11.2004 10:00:22

dominator hat geschrieben:Für Passwort-Faule gibt es ja unter Windows im Zusammenspiel mit Putty den "pageant" :idea:
Siehe oben. Hat mich wohl verschrieben.


Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
dominator
Beiträge: 790
Registriert: 26.08.2003 10:05:37
Wohnort: Neuerdings meistens im Bierparadies Oberfranken

Beitrag von dominator » 02.11.2004 18:42:27

Bert hat geschrieben:
dominator hat geschrieben:Für Passwort-Faule gibt es ja unter Windows im Zusammenspiel mit Putty den "pageant" :idea:
Siehe oben. Hat mich wohl verschrieben.
Bert
.. und ich deinen Absatz überlesen :wink:
gruss + viel erfolg

Michael
--
Aus aktuellem Anlass :
"Der Glubb is a Depp" - Fränkische Weisheit

systemdefender
Beiträge: 76
Registriert: 26.08.2004 19:43:45
Wohnort: hessen

Beitrag von systemdefender » 03.11.2004 02:44:10

Cobr4 hat geschrieben:nach der Definition duerfte ja mein private key auch net auf meinem Server liegen, sondern nur ein public. Mein private key sollte dann MEINEN (win dem fall) windows rechner nie verlassen. Aber der private ist ja in der authblabal_keys datei
der private key (deine persönliche auth) sollte deinen windows recher aus sicherheitsgründen auf jeden fall verlassen! speicher ihn z.b. auf eine diskette. da ist er sicherer als im windowssystem. ansonsten kann theoretisch (und praktisch) jeder deiner viren mit deinem ausweis hausieren gehen :~/

gruss, sysdef.

achtung: benutzer leidet an endogener ironie im endstadium mit tendenz zu schweren humorsymptomen
Note: "Questions are the Beginning of Wisdom" Lt. Worf TNG-149 "Rightful Heir"

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 03.11.2004 10:59:27

systemdefender hat geschrieben: der private key (deine persönliche auth) sollte deinen windows recher aus sicherheitsgründen auf jeden fall verlassen! speicher ihn z.b. auf eine diskette. da ist er sicherer als im windowssystem. ansonsten kann theoretisch (und praktisch) jeder deiner viren mit deinem ausweis hausieren gehen :~/

gruss, sysdef.
Ist das bei Linux nicht so? Dazu gibts ja die Passphrase für den private Key. Und auch eine Diskette/USBStick/... muß ich irgenwann aktivieren, sonst kann ich ja mit dem Key nichts anfangen. Nichts für ungut, aber wer dem System auf dem die privaten Keys liegen nicht vertraut, hat eh verloren.

Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

systemdefender
Beiträge: 76
Registriert: 26.08.2004 19:43:45
Wohnort: hessen

Beitrag von systemdefender » 03.11.2004 11:44:42

Nun will ich das ganze OHNE irgendwelche eingaben haben. Also muss wohl noch der Public Key zum Einsatz kommen. Nur wie und wo?
die aussage macht mir angst, hört sich an, als ob er vor hat die passphrase zu löschen ... aber zur erklärung meiner ansicht: ich bin paronoid und vertraue aus prinzip keinen windows systemen ;)

gruss, sysdef.

achtung: benutzer leidet an endogener ironie im endstadium mit tendenz zu schweren humorsymptomen
Note: "Questions are the Beginning of Wisdom" Lt. Worf TNG-149 "Rightful Heir"

axel1973
Beiträge: 17
Registriert: 08.02.2005 15:53:01
Wohnort: Freiburg

Beitrag von axel1973 » 09.02.2005 00:54:51

Cobr4 hat geschrieben:nach der Definition duerfte ja mein private key auch net auf meinem Server liegen, sondern nur ein public. Mein private key sollte dann MEINEN (win dem fall) windows rechner nie verlassen. Aber der private ist ja in der authblabal_keys datei
genau das. Der private key gibst du NIE irgendwo hin weiter. auch nicht auf deinen Server! der bleibt auf dem client. das ist DEIN PERSÖNLICHER AUSWEIS! den gibst du auch nicht aus der hand.

der public key ist eine art "beglaubigte Kopie" deines Ausweises (im übertragenen Sinne! nicht wirklich). dieser schlüssel enthält nur informationen die es jedem besitzer einer solchen kopie ermöglichen zu überprüfen ob du es auch wirklich bist. im falle SSH werden diese schlüssel also nicht zur "verschlüsselung" der DAten verwendet, sondern eigentlich nur dazu um dich zu indendifizieren. so ähnlich wie ein fingerabdruck.

deinen priv. key sollte man unter verschluss halten. um ihn weiter gegen diebstal zu sichern kann man ihn mit eineer "passphrase" schützen. eine art Passwört für den Priv. Schlüsen der deinen Ausweis "öffnet".

Priv.- Key und public Key gehören zusammen d.h. sind nur jeweils zusammen gültig und aufeinander abgestimmt. d.h. aber nicht das immer beide am selben ort sein müssen!!
den persönlichen "Priv Key" hält man unter verschluss. den "pub Key" kann man ruhig weitergeben oder veröffentlichen.
-------------
Auf der Verpackung stand drauf: "Benötigt Windows XP oder besser..." - also installierte ich Linux.

Antworten