Key-Login (OpenSSH): Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Habe meinen furchtbaren Text mal ein bisschen geglättet
Christian (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(17 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Normaler Login mit Passwort==
==Normaler Login mit Passwort==
Login per SSH auf einem Rechner funktioniert normalerweise mit Passwortabfrage, d.h. der User wird nach seinem Passwort gefragt, welches in der /etc/shadow gespeichert wird und welches PAM verwaltet.
Das Anmelden per SSH auf einem Rechner funktioniert normalerweise über eine Passwortabfrage. Der Benutzer wird nach seinem Passwort gefragt, um sich auf dem entfernten Rechner zu authentifizieren.


===Häufige Logins===
Die Authentifizierung über ein Passwort ist immer dann sehr unhandlich, wenn es schnell gehen soll. Ebenso für Cron müssen interaktive Abfragen vermieden werden. Nun soll das Verfahren aber trotz alledem sicher sein. Aus diesem Grund sollte man SSH-Authentifizierung durch einen Schlüssel wählen. Konkret heißt das, der Benutzer legt sich einen Schlüssel an. Dieser Schlüssel besteht aus zwei Teilen, einem privaten und einem öffentlichen (s.g. Public Key Kryptographie). Der öffentliche Schlüssel wird nun auf dem Server hinterlegt. Wenn nun der User sich auf den Server verbindet, wird überprüft ob es einen passenden Key gibt. Falls ein passender Key gefunden wird, überprüft das SSH-Protokoll, ob zum auf dem Server gefundenen öffentlichen Schlüssel, ein lokaler, privater Schlüssel existiert. Über dieses Schlüsselpaar findet dann die Authentifizierung statt.
Das ist v.a. dann sehr unpraktisch, wenn man sich häufiger irgendwo einloggen will. Ebenso für [Cronjobs Cron] müssen interaktive Abfragen vermieden werden. Nun soll das Verfahren aber trotz alledem sicher sein und aus diesem Grund sollte man SSH-Authentifizierung durch einen Schlüssel wählen. Konkret heißt das, der Benutzer legt sich einen Schlüssel; dieser Schlüssel besteht aus zwei Teilen, einem privaten und einem öffentlichen (s.g. Public Key Kryptographie). Der öffentliche Schlüssel wandert nun auf den Server. Wenn nun der User sich auf den Server verbindert, wird überprüft ob es einen passenden Key gibt. Falls ein passender Key gefunden wird, überprüft das SSH-Protokoll, ob zum auf dem Server gefundenen öffentlichen Schlüssen, ein lokaler, privater Schlüssel existiert. Über dieses Schlüsselpaar findet dann die Authentifizierung statt.


==Login per Key==
==Login per Key==
===Schlüssel anlegen (4096 Bit)===
===Unix: Schlüssel anlegen (4096 Bit) ===
Da der Schlüssel recht lang ist, dauert es möglicherweise ein bisschen also immer schön Geduld haben. Wichtig ist auch, dass ihr kein Passwort angebt, sonst habt ihr zwar Authentifizierung über einen Key aber eben über einen mit Passwort:
Da der Schlüssel recht lang ist, dauert es möglicherweise eine kurze Weile, bis dieser erstellt ist. Sie können den Computer beim Erstellen unterstützen, in dem Sie wahllos Aktionen tätigen: Fenster verschieben, Dokumente löschen, speichern, öffnen, Programme öffnen und schließen. Dies ist notwendig, da bei der Erzeugung eines Schlüssels das Programm eine große Anzahl von Zufallszahlen benötigt, die es nur aus Rechenoperationen erzeugen kann.
:<pre>ssh-keygen -b 4096 -t rsa</pre>
 
===Den autorisierten Schlüsseln hinzufügen===
Je nach Zielsetzung des Schlüssels kann es wichtig sein, kein Passwort einzugeben. Sonst hat man zwar Authentifizierung über einen Key aber eben über einen mit Passwort:
:<pre>cat ~/.ssh/id_rsa.pub | ssh remotehost "cat >> ~/.ssh/authorized_keys"</pre>
ssh-keygen -b 4096 -t rsa


==Für Windows (Putty)==
===Windows (Putty): Schlüssel anlegen (4096 Bit)===
Zuerst benötigt man hierzu das Programm puttygen.exe und putty.exe (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
Zuerst benötigt man hierzu das Programm puttygen.exe und putty.exe [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html].


===Schlüssel anlegen (4096 Bit)===
Den Schlüssel generiert man nun mit dem Tool puttygen.exe (nicht vergessen unten rechts 4096 Bit einzutragen).
Den Schlüssel generiert man nun mit dem Tool puttygen.exe (nicht vergessen unten rechts 4096 Bit einzutragen). Da dieses Tool selbsterklärend sein sollte werde ich es nicht weiter behandeln.
Die beiden Schlüssel (privat und public) müssen nun - ggf. ohne die Angabe eines Passwortes - an einem "sicheren Ort" gespeichert werden.
Die beiden Schlüssel (privat und public) müssen nun - ohne die Angabe eines Passwortes - an einem "sicheren Ort" gespeichert werden.


===Den autorisierten Schlüssel hinzufügen ;-)===
[[Datei:Puttygen.png]]
Einfach den Schlüssel mit dem Programm deiner Wahl auf den Keks laden und danach mit dem Editor deiner Wahl bearbeiten, dass er hinterher so aussieht:


vorher:
Im oberen Feld des Key-Generators findet man nun den PublicKey für OpenSSH. Dieser muss nun auf dem Zielserver in folgende Datei eingetragen werden: ~/.ssh/authorized_keys
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20050628"
AAAAB3NzaC1yc2EAAAABJQAAAgEAysrH3U3QLAs7IEys47SuA6CPAVzviJT3R6ab
jTtZKk3nXPUtbLRPrfpsjo2Rl64kqLmddyZey0ea5vU/hamLAms6DCUL21O/OPQd
AJcbm+vWKhuD0LZCRWGwHSfLEvsWIuvYDWo/Bkm35mX5Ntq75S4sSEQINJ3NQprd
c1eH7hEVwvJGJK394j1d8I0NS2WncCqBo1Z+pD2Fqh6xFkS/7bRGi9dY/Ijdy1Mh
q6CxW2yeV9iyavbXvONfPDEj1NFnrr4X+phRf1Hm6wVfH9ARVixDpN1La0WXDKaN
ZiZAgFBf+bIXKyFajRI8FaiIwKTFaomCFeARPdJHWiefvFg4MYFKML4cngvrzG/8
l2FJ7tSVTPCxcpkpfd7OvppXMZGauwKKfytBDoUjoP66c+6L1frh0rGzArXMt1OV
AZDg5tQhuGe6Sa0touM5BSkPZoMosYxGXlrPfDSIhjmMTPIGrNkXAOEWYM2fGwXM
7Zl7s5i6abfkjXn1CYdihKDWVQIaj0EKe4yNC6sTBvSCCLIFBNYhnOaXDljbh0Fm
1dT4xfUvCzu3RXbFkSxvdfNWiPcPGy+TdIDEKbaLy4W0r3KzylmFJzuDcYDrpHIV
aKXGQDp1f1/2+V7focV5XtT9FoD/+bFmgD14UGKvgyWc4vVwrg+VzjoRak3uPk6M
0jd6hjk=
---- END SSH2 PUBLIC KEY ----


hinterher:
===Den autorisierten Schlüsseln hinzufügen===
ssh-rsa AAAAB3NzaC1yc2EAAAABJQA........FmgD14UGKvgyWc4vVwrg+VzjoRak3uPk6M0jd6hjk=
Damit der Server den Schlüssel akzeptiert, muss der öffentliche Schlüssel in die Datei ''~/.ssh/authorized_keys'' (auf dem Schokokeks Server) eingetragen werden:


Diesen fügen Sie dann in die Datei ~/.ssh/authorized_keys ein
cat ~/.ssh/id_rsa.pub | ssh remotehost "cat >> ~/.ssh/authorized_keys"


Es können mehrere unterschiedliche Schlüssel in dieser Datei eingetragen werden.
===Windows: Schlüssel zum Login verwenden===
Um den eben erstellen Key unter Windows auch zu verwenden wird das Tool pageant.exe verwendet. Nach dem starten des Agents taucht dieser im Systemtray auf. Hier kann nun der private Schlüssel des eben erstellen Schlüsselpaars hinzugefügt werden. Sollten beim Erstellen des Schlüssels ein Passwort hinterlegt worden sein, so muss dies vor dem verwenden eingetippt werden.


Nun sollte es auch schon tun...
[[Datei:pageant.png]]


==Kurznamen einrichten==
Wenn der Key Agent gestartet ist und der Key geladen, kann man sich auf dem Server einloggen, ohne das Kennwort eingeben zu müssen.
==Kurznamen einrichten (Linux)==
Falls Sie in der Form <code>ssh keks</code> auf Ihren SSH-Account zugreifen möchten, so editieren Sie die Datei <code>~/.ssh/config</code>. Dort fügen Sie folgende Zeilen ein:
Falls Sie in der Form <code>ssh keks</code> auf Ihren SSH-Account zugreifen möchten, so editieren Sie die Datei <code>~/.ssh/config</code>. Dort fügen Sie folgende Zeilen ein:
<pre>Host keks
Host keks
    User <Ihr Benutzername>
    User <Ihr Benutzername>
    IdentityFile <Pfad zum SSH-Key>
    IdentityFile <Pfad zum SSH-Key>
    Hostname schokokeks.org</pre>
    Hostname schokokeks.org
 
===Beispiel===
'''ACHTUNG:''' Der Pfad zum Schlüssel variert, vor allem auf den unterschiedlichen Plattformen. Testen Sie vorher unbedingt aus, dass der Schlüssel auch unter dem angegebenen Pfad existiert.
 
Host keks
    User lars
    IdentityFile ~/.ssh/keks_rsa
    Hostname schokokeks.org
 
[[Kategorie:OpenSSH]]

Aktuelle Version vom 26. Juni 2009, 12:32 Uhr

Normaler Login mit Passwort

Das Anmelden per SSH auf einem Rechner funktioniert normalerweise über eine Passwortabfrage. Der Benutzer wird nach seinem Passwort gefragt, um sich auf dem entfernten Rechner zu authentifizieren.

Die Authentifizierung über ein Passwort ist immer dann sehr unhandlich, wenn es schnell gehen soll. Ebenso für Cron müssen interaktive Abfragen vermieden werden. Nun soll das Verfahren aber trotz alledem sicher sein. Aus diesem Grund sollte man SSH-Authentifizierung durch einen Schlüssel wählen. Konkret heißt das, der Benutzer legt sich einen Schlüssel an. Dieser Schlüssel besteht aus zwei Teilen, einem privaten und einem öffentlichen (s.g. Public Key Kryptographie). Der öffentliche Schlüssel wird nun auf dem Server hinterlegt. Wenn nun der User sich auf den Server verbindet, wird überprüft ob es einen passenden Key gibt. Falls ein passender Key gefunden wird, überprüft das SSH-Protokoll, ob zum auf dem Server gefundenen öffentlichen Schlüssel, ein lokaler, privater Schlüssel existiert. Über dieses Schlüsselpaar findet dann die Authentifizierung statt.

Login per Key

Unix: Schlüssel anlegen (4096 Bit)

Da der Schlüssel recht lang ist, dauert es möglicherweise eine kurze Weile, bis dieser erstellt ist. Sie können den Computer beim Erstellen unterstützen, in dem Sie wahllos Aktionen tätigen: Fenster verschieben, Dokumente löschen, speichern, öffnen, Programme öffnen und schließen. Dies ist notwendig, da bei der Erzeugung eines Schlüssels das Programm eine große Anzahl von Zufallszahlen benötigt, die es nur aus Rechenoperationen erzeugen kann.

Je nach Zielsetzung des Schlüssels kann es wichtig sein, kein Passwort einzugeben. Sonst hat man zwar Authentifizierung über einen Key aber eben über einen mit Passwort:

ssh-keygen -b 4096 -t rsa

Windows (Putty): Schlüssel anlegen (4096 Bit)

Zuerst benötigt man hierzu das Programm puttygen.exe und putty.exe [1].

Den Schlüssel generiert man nun mit dem Tool puttygen.exe (nicht vergessen unten rechts 4096 Bit einzutragen). Die beiden Schlüssel (privat und public) müssen nun - ggf. ohne die Angabe eines Passwortes - an einem "sicheren Ort" gespeichert werden.

Im oberen Feld des Key-Generators findet man nun den PublicKey für OpenSSH. Dieser muss nun auf dem Zielserver in folgende Datei eingetragen werden: ~/.ssh/authorized_keys

Den autorisierten Schlüsseln hinzufügen

Damit der Server den Schlüssel akzeptiert, muss der öffentliche Schlüssel in die Datei ~/.ssh/authorized_keys (auf dem Schokokeks Server) eingetragen werden:

cat ~/.ssh/id_rsa.pub | ssh remotehost "cat >> ~/.ssh/authorized_keys"

Es können mehrere unterschiedliche Schlüssel in dieser Datei eingetragen werden.

Windows: Schlüssel zum Login verwenden

Um den eben erstellen Key unter Windows auch zu verwenden wird das Tool pageant.exe verwendet. Nach dem starten des Agents taucht dieser im Systemtray auf. Hier kann nun der private Schlüssel des eben erstellen Schlüsselpaars hinzugefügt werden. Sollten beim Erstellen des Schlüssels ein Passwort hinterlegt worden sein, so muss dies vor dem verwenden eingetippt werden.

Wenn der Key Agent gestartet ist und der Key geladen, kann man sich auf dem Server einloggen, ohne das Kennwort eingeben zu müssen.

Kurznamen einrichten (Linux)

Falls Sie in der Form ssh keks auf Ihren SSH-Account zugreifen möchten, so editieren Sie die Datei ~/.ssh/config. Dort fügen Sie folgende Zeilen ein:

Host keks
    User <Ihr Benutzername>
    IdentityFile <Pfad zum SSH-Key>
    Hostname schokokeks.org

Beispiel

ACHTUNG: Der Pfad zum Schlüssel variert, vor allem auf den unterschiedlichen Plattformen. Testen Sie vorher unbedingt aus, dass der Schlüssel auch unter dem angegebenen Pfad existiert.

Host keks
    User lars
    IdentityFile ~/.ssh/keks_rsa
    Hostname schokokeks.org