SSH, mehrere Schlüsselpaare?

Überkinger

Lieutenant
Registriert
Juli 2010
Beiträge
600
Hallo,

ich möchte mehrere Verbindungen auf Linuxrechnen nutzen und habe ein grundsätzliches Verständnisproblem zur Arbeitsweise von SSH-Verbindungen. Bin blutiger Anfänger bei SSH. Meine SSH-Verbindung funktioniert, aber ich weiß nicht warum sie funktioniert.

Meine Situation:

1. Situation: Client 1 <-> Server 1
Client 1 (Win) hat putty private Key, Server 1 (Linux) hat public Key.
SSH-Verbindung funktioniert.

1. Frage: Woher weiß der public key auf Server, dass er zu Putty private key gehört?

2. Frage: Ich verwende Putty. Weil Putty Windows ist und SSH für Windows "anders" ist, braucht Putty eine besondere Form des Schlüsseln, einen Putty Private Key, und NUR Putty. Richtig?

2. Situation:Server 1 (Linux) <-> Server 2 (Linux)
Ich lege für diese Verbindung mit SSH-keygen ein neues Schlüsselpaar an.
Private key bleibt auf Server 1, public key geht auf Server 2.

1. Frage: Kann ich nicht für alle zwei Situationen ein und das selbe Schlüsselpaar verwenden?

2. Man muss ja den privatkey konvertieren. Beim Konvertieren in puttyprivatekey bleibt die Information erhalten, welcher public key auf den Linuxrechnern zu ihm gehört. Richtig?
 
Aus dem private Key lässt sich immer der zugehörige public-key ableiten.
Der Client schickt den public Teil zum Server, dort wird er mit dem hinterlegten verglichen.
Wenn das passt, wird die Anmeldung akzeptiert.

SSH für Windows ist grundsätzlich nicht anders als ssh für linux/unix. Nur Putty speichert Keys in einem etwas anderen Format als bei openSSH. Deswegen muss man Putty Keys auch mit puttygen exportieren wenn man sie unter openSSH benutzen will.

Du kannst einen private Key und den dazugehörigen public Key für beliebig viele Verbindungen nutzen. Man kann sich drüber streiten, ob es nun sicherer ist für jede Verbinduing ein eigenes Key-Paar zu nutzen (der Verwaltungsaufwand ist natürlich höher).
 
hey
also für das grundlegende verständnis kkann ich dir die seite von ubuntu wiki empfehlen: http://wiki.ubuntuusers.de/SSH#PubKeys wenn du dir das durchliest müsste dir klar sein wie der ablauf funktioniert ;-) du kannst ein und das selbe paar auch gleichzeitig von verschiedenen rechnern aus nutzen um auf den server zuzugreifen ...z.b dein pc und dann noch dein laptop ... und als 3. machst du vom pc auch ne ssh verbindung mit GIT zu dem server oder so :D

wichtig: den private key nicht verlieren und beim server die authentifizierung via passwort ausschalten .. sonst bringen dir die keys auch nix ... und: root nutzer passwort komplett entfernen ... immer einen anderen n utzer mit sicherem passwort erstellen ... dann sind übernahmen des servers relativ sicher nicht mehr möglich

warum mehrere keys sinnvoll sein können: du gibst mehreren personen zugriff per ssh zu dem server ... irgendwann ist eine person nicht mehr vertrauenswürdig ... um seinen zugang zu sperren musst du nur den public key aus den authorized keys nehmen und er kann sich nicht mehr verbinden!
 
Zu Frage 2.1: Das ist insofern eine schlechte Idee, den privaten Schlüssel auf den Server zu packen, weil man dann als Angreifer automatisch Zugriff auf den zweiten Server hat. Private Schlüssel sollten immer beim lokalen User sein, da dort die Chance auf Angriffe am geringsten ist (Stichwort NAT und so).

Du kannst aber denselben Key für die Verbindung zu Server 2 verwenden, in dem du Agent Forwarding aktivierst. Dabei verbindest du dich mit dem Key auf Server 1. Wenn du dich von Server 1 nun zu Server 2 verbindest wird die "Authentifizierungsanfrage" nicht von Server 1 beantwortet, sondern dank dem Agent Forwarding zum Client durchgeschickt. Der kann sich dann ganz normal mit dem Key authentifizieren.

Der Vorteil ist ganz klar: Du hast den privaten Schlüssel wirklich nur auf deinem lokalen Rechner und nicht im Internet. Außerdem musst du Server 1 nicht unbedingt vertrauen, der kann deinen Schlüssel nicht auslesen!
 
Zurück
Oben