Linux Server setup

RSA Schlüssel erzeugen

In diesem Teil werden wir ein Schlüsselpaar auf dem lokalen Rechner erzeugen. Den öffentlichen Schlüssel werden wir auf den Server übertragen, der private hingegen bleibt "geschützt" auf dem Rechner.

In diesem Unterkapitel werden wir die Schlüsselpaare für die schlüsselbasierte Authentifizierungsmethode vorbereiten.

Die Themen Kryptografische Verschlüsselung und Authentifizierung würden den Rahmen dieses Tutorials sprengen, daher ist der Fokus hauptsächlich auf das erstellen und konfigurieren gerichtet.

Weiter als:


Schlüsselpaar erzeugen unter Windows

Das PuTTY eigene Schlüsselformat .ppk wird mit der Software PuTTYgen erzeugt. Nach dem Download und der Installation öffnen wir PuTTYgen:

PuTTYgen

Mit PuTTYgen erzeugen wir einen privaten Schlüssel und speichern diesen unter private-key.ppk ab. Es macht Sinn diesen Schlüssel auch gleich in das OpenSSH Format zu exportieren, um später auch mit anderer Software eine schlüsselbasierte Verbindung herstellen zu können. Mit dem privaten Schlüssel generieren wir einen passenden öffentlichen Schlüssel, den wir anschließend auf den Server übertragen.

Wir stellen die Parameter auf RSA und die Bittiefe auf 4096. Zum Erzeugen einfach auf Generate klicken. In dem leeren grauen Bereich muss der Mauszeiger hin- und her bewegt werden. Diese willkürlichen Bewegungen fließen in die Berechnung des Schlüssels mit ein. Der Fortschrittsbalken informiert darüber, wie lange die Bewegungen ausgeführt werden müssen. Je höher die Bittiefe, also die Komplexität, desto länger dauert es. Nach dem der Schlüssel temporär erstellt ist, geben wir eine Passphrase ein, was den Schlüssel noch zusätzlich AES-CBC verschlüsselt.

Parameter einstellen und Schlüssel generieren
Mauszeiger hin- und her bewegen
Schlüssel erstellt
Passphrase eingeben

Wir speichern den öffentlichen Schlüssel mit Save public key. Den Dateinamen kannst Du frei wählen. Die Dateiendung kann zum Beispiel .txt sein. Den Inhalt dieser Datei werden wir später auf unserem Server hinterlegen.

öffentlichen Schlüssel speichern
als public-key.txt ablegen

Ähnliches Vorgehen für den privaten Schlüssel. Diesmal klicken wir Save private key und vergeben keine Dateiendung. Die Dateiendung .ppk wird automatisch vergeben.

privaten Schlüssel speichern
als private-key.ppk ablegen

Fehlt noch der private Schlüssel im OpenSSH Format. Dazu öffnen wir das Menü Conversions und exportieren mit Export OpenSSH key. Diese Datei speichern wir unter private-key ohne Dateiendung ab.

privater OpenSSH Schlüssel
als private-key ablegen

Bevor Du PuTTYgen schließt, solltest Du noch den Schlüssel aus dem oberen Feld kopieren. In dieser Form, beginnend mit "ssh-rsa" und alles in einer Zeile, ist er für den SSH Dienst lesbar. Diesen Schlüssel werden wir gleich auf den Server kopieren.

Schlüssel aus dem Textfeld kopieren

Zur Not können wir den auch mit dem abgespeicherten öffentlichen Schlüssel nachbauen. Der RSA Key sieht bei mir dann so aus:


ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAtX9gXr8jJm5p6sqSGelcGjV0oov5OsTH2cGkYNfArq+jnhswBG52GsOSDy05EJjcGOeSuo4rr+vp/iUpl9Q3H/45k3T8AcLmnSZwzhWoxOs2mE9Esyrv6Ki4us4WJr2F8m7BbE5sym5kDOmUqSr1upT5THzccFDfNmtr9tQtYDls720/QcZ3SUk0ZDJTsyyHpe3vDUq4qcXgzKXpBhk58wsFcbKyeV+kAG8kzcdKPapmhswmP5KgtsHsGHwBZoyAS9nmDPSkxRmn18UgZjEY+wwBdGmcyTKwaphMcB6Ja+Tpu8iZLxjPATdqTmIO0AVEhDw7pCuO/9yoQf2WKkUdiQ== 
	

Geschafft! Unser Schlüsselpaar liegt nun in verschiedenen Dateiformaten auf unserem Rechner. Den privaten Schlüssel und die Passphrase solltest Du nicht verlieren, denn ohne Schlüssel wirst Du (und sonst niemand) später nach der Umstellung nicht mehr auf den Server kommen.

Öffentlichen Schlüssel auf dem Server hinterlegen

Den Inhalt der öffentlichen Schlüsseldatei müssen wir im Benutzer Verzeichnis von tom unter Home in die Datei ~/.ssh/authorized_keys schreiben. Um sicher zu gehen, dass Du mit dem richtigen Benutzer angemeldet hast, kannst Du das mit whoami überprüfen:


__$ whoami
 

Es ist gut möglich, dass die Datei noch nicht existiert. Daher legen wir erst den Ordner ~/.ssh mit mkdir an:


__$ mkdir ~/.ssh
 

Danach erzeugen wir die Datei ~/.ssh/authorized_keys mit nano und können den Inhalt vom öffentlichen Schlüssel gleich mit eingeben:


__$ nano ~/.ssh/authorized_keys
 

Und fügen den Schlüssel mit der rechten Maustaste ein. Nur noch speichern und fertig (STRG+s, STRG+x).

~/.ssh/authorized_keys


ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAtX9gXr8jJm5p6sqSGelcGjV0oov5OsTH2cGkYNfArq+jnhswBG52GsOSDy05EJjcGOeSuo4rr+vp/iUpl9Q3H/45k3T8AcLmnSZwzhWoxOs2mE9Esyrv6Ki4us4WJr2F8m7BbE5sym5kDOmUqSr1upT5THzccFDfNmtr9tQtYDls720/QcZ3SUk0ZDJTsyyHpe3vDUq4qcXgzKXpBhk58wsFcbKyeV+kAG8kzcdKPapmhswmP5KgtsHsGHwBZoyAS9nmDPSkxRmn18UgZjEY+wwBdGmcyTKwaphMcB6Ja+Tpu8iZLxjPATdqTmIO0AVEhDw7pCuO/9yoQf2WKkUdiQ== 

Die Schritte gezeigt mit Screenshots:
mit rechter Maustaste einfügen
STRG+x zum Schließen, y zum Speichern
mit Enter bestätigen

Um wirklich sicher zu sein, ob der public key abgespeichert wurde, schauen wir mit less nach:


__$ less ~/.ssh/authorized_keys
 

Die Ausgabe sollte in etwa so aussehen:

Inhalt von authorized_keys (beenden mit q)

Der öffentliche Schlüssel ist jetzt auf dem Server hinterlegt, was wunderbar ist, aber uns so noch nichts bringt. Wir müssen noch die SSH Authentifizierungsmethode umstellen. Das machen wir im nächsten Kapitel: Authentifizierungsmethode ändern und testen.


Schlüsselpaar erzeugen unter Mac und Linux

Ein Schlüsselpaar unter Mac oder Linux erstellen wir lokal über das Terminal mit dem Befehl ssh-keygen. Falls Du noch auf dem Server eingeloggt bist, solltest Du Dich mit logout abmelden.

Legen wir zunächst einen Ordner an, wo die Schlüsselpaare hineinkopiert werden sollen:


__$ cd
__$ mkdir linux-server
 

Mit ssh-keygen erstellen wir einen privaten und einen öffentlichen Schlüssel. Die Bittiefe, also die Komplexität, soll 4096 Bit betragen. Den privaten Schlüssel, schützen wir noch zusätzlich mit einer Passphrase:


__$ ssh-keygen -b 4096
 

Es erscheint eine Mitteilung das der private und öffentliche Schlüssel erzeugt werden, gefolgt von der Aufforderung einen Speicherort zu wählen. Den Ordner haben wir bereits angelegt. Der Pfad mit DEIN_BENUTZERNAME lautet /home/DEIN_BENUTZERNAME/linux-server. Anschließend setzen wir noch eine Passphrase.

Das sieht in etwa so aus:


Generating public/private rsa key pair.
Enter file in which to save the key (...):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ...
Your public key has been saved in ....pub
The key fingerprint is:
SHA256:lMynD1M8dxOHtUPmXur8Q3z0iHS3mVC7hslJtmyeaJ8
The key's randomart image is:
+---[RSA 4096]----+
|              .=o|
|       o o    =+.|
|        = = . ++o|
|       . + o.=o+=|
|        S  .=oO=*|
|         +  .@.Oo|
|          . + * .|
|           o o.o |
|          . .E  o|
+----[SHA256]-----+
 

Kontrollieren wir kurz, ob die Schlüssel wirklich da sind:


__$ ls linux-server
 

Bleibt nur noch den Inhalt vom öffentlichen Schlüssel, der jetzt lokal vorliegt, in die Datei ~/.ssh/authorized_keys auf dem Server zu schreiben. Diese Datei liegt im home Verzeichnis vom Benutzer tom. Das kann durch "kopieren und einfügen" erledigt werden oder noch einfacher mit dem Befehl ssh-copy-id:


__$ ssh-copy-id -i linux-server/id_rsa.pub tom@116.203.69.89
 

Loggen wir uns als tom ein und schauen kurz nach, ob das alles geklappt hat:


__$ ssh tom@116.203.69.89
 

Mit dem Befehl less geben wir den Inhalt der Schlüsseldatei ~/.ssh/authorized_keys aus:


__$ less .ssh/authorized_keys
 

Die Ausgabe sollte in etwa so aussehen:

Inhalt der Datei: authorized_keys (beenden mit q)

Der öffentliche Schlüssel ist jetzt auf dem Server hinterlegt, was wunderbar ist, aber uns so noch nichts bringt. Wir müssen noch die SSH Authentifizierungsmethode umstellen. Das machen wir im nächsten Kapitel: Authentifizierungsmethode ändern und testen.

Öffentlichen Schlüssel manuell übertragen

Für den Fall, dass es mit dem Befehl ssh-copy-id nicht funktioniert hat. Kannst Du den Schlüssel auch manuell in die ~/.ssh/authorized_keys Datei einfügen.

Legen wir zunächst den Ordner ~/.ssh mit mkdir an:


__$ mkdir ~/.ssh
 

Danach erzeugen wir die Datei ~/.ssh/authorized_keys mit nano und können den Inhalt vom öffentlichen Schlüssel gleich mit eingeben:


__$ nano ~/.ssh/authorized_keys
 

Und fügen den Schlüssel mit der rechten Maustaste ein. Nur noch speichern und fertig (STRG/CMD+s, STRG/CMD+x).

~/.ssh/authorized_keys


ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAtX9gXr8jJm5p6sqSGelcGjV0oov5OsTH2cGkYNfArq+jnhswBG52GsOSDy05EJjcGOeSuo4rr+vp/iUpl9Q3H/45k3T8AcLmnSZwzhWoxOs2mE9Esyrv6Ki4us4WJr2F8m7BbE5sym5kDOmUqSr1upT5THzccFDfNmtr9tQtYDls720/QcZ3SUk0ZDJTsyyHpe3vDUq4qcXgzKXpBhk58wsFcbKyeV+kAG8kzcdKPapmhswmP5KgtsHsGHwBZoyAS9nmDPSkxRmn18UgZjEY+wwBdGmcyTKwaphMcB6Ja+Tpu8iZLxjPATdqTmIO0AVEhDw7pCuO/9yoQf2WKkUdiQ== 

Die Schritte gezeigt mit Screenshots:
mit rechter Maustaste einfügen
STRG/CMD+x zum Schließen, y zum Speichern
mit Enter bestätigen

Wie zuvor solltest Du überprüfen, ob der Schlüssel korrekt gespeichert wurde:


__$ less .ssh/authorized_keys