Tutorial: SSH Public Keys einrichten

SSH Public Keys einrichten

Allgemein

Ein SSH-Zugang ist nicht nur mittels Passwort, sondern auch via SSH-Keys möglich und wird aus Sicherheitsgründen dem Login mittels Passwort vorgezogen.

Die Struktur sollte dabei wie folgt aussehen:

  • Der private und öffentliche Schlüssel (Private und Public Key) sollten auf Ihrem Endgerät liegen, von dem aus Sie sich mit dem Server verbinden wollen. Der Private Key sollte das System auf dem er generiert wurde nicht verlassen!
  • Der Public Key sollte auf dem Server in der Datei "authorized_keys" gespeichert werden.

Einrichtung über die Kommandozeile

Um auf einem Unix-System ein Schlüsselpaar zu erstellen, gehen Sie wie folgt vor:

  • Öffnen Sie das Terminal (die Kommandozeile) auf Ihrem Endgerät.
  • Erstellen Sie nun, nur falls Sie noch kein Schlüsselpaar erstellt haben, mit dem Befehl
 ssh-keygen -t rsa 

ein neues Schlüsselpaar. Standardmäßig sollte Ihnen als Dateiname "id_rsa" vorgeschlagen werden. Die Datei wird in der Regel vom System im Ordner ~/.ssh angelegt. Sie können so auch überprüfen, ob Sie bereits über ein Schlüsselpaar verfügen. Dafür müssen Sie mit dem Befehl

 ls ~/.ssh 

alle Dateien auflisten.
Sollten dort die Dateien id_rsa und id_rsa.pub liegen, so haben Sie bereits ein Schlüsselpaar und müssen kein neues generieren.

  • Sie können den Schlüssel zusätzlich mit einem Passwort versehen, dies kann aus Sicherheitsgründen vorteilhaft sein, da mit dem Schlüssel alleine dann kein Zugriff möglich ist. Wenn Sie dies nicht wünschen, drücken Sie einfach "enter" wenn die Aufforderung zum Erstellen eines Passworts kommt, andernfalls können Sie Ihr gewünschtes Passwort in diesem Schritt festlegen.
  • Als nächstes müssen Sie den öffentlichen Schlüssel auf den Server kopieren, welcher in der Regel in der Datei "id_rsa.pub" gespeichert ist. Wenn Sie bereits einen Zugang über SSH haben, der passwortgesichert ist, so können Sie den Befehl
 ssh-copy-id ihruser@ihrhost 

benutzen.
Der öffentliche Schlüssel wird dann von diesem Befehl zu den autorized_keys auf dem Host-System hinzugefügt, sodass Sie sich nun mit dem Schlüssel einloggen können.

  • Sie können den öffentlichen Schlüssel auch manuell auf dem Server hinterlegen, indem Sie diesen komplett kopieren und in der Datei "authorized_keys", die sich ebenfalls im ~/.ssh Ordner auf dem Server befindet, mit einem Editor (oder über das DCP) in einer neuen Zeile hinzufügen.
  • Im nächsten Schritt testen Sie den Login per Key. Sofern Sie sich auf dem Endgerät im User-Ordner ~/ befinden, wird SSH die Standardidentität verwenden, id_rsa und id_rsa.pub. Sie brauchen dann nur noch SSH, wie schon mit Passwort einzugeben:
 ssh ihruser@ihrhost 

Sollte die Identität nicht automatisch erkannt werden, so können Sie diese auch durch den Switch "-i" manuell angeben. Der SSH-Befehl würde dann so aussehen:

 ssh -i ~/.ssh/id_rsa.pub ihruser@ihrhost.de

Sollte alles funktioniert haben, werden Sie nun ohne Passwortabfrage (falls Sie die Schlüssel zusätzlich mit einer Passphrase gesichert haben, nach Abfrage dieser) eingeloggt.

Einrichtung über das DCP/Dateimanager

Sie können den öffentlichen Schlüssel auch über das DCP hinzufügen, ähnlich der Schritte weiter oben.

  • Sie müssen den Ordner .ssh im Homeverzeichnis (dies entspricht dem Verzeichnis "sshroot" des jeweiligen Users) manuell erstellen.
  • Das Homeverzeichnis sollte dabei folgende Berechtigungen haben: rwxr-xr-x
  • Das Verzeichnis .ssh sollte folgende Berechtigungen haben: rwx--
  • Die Datei authorized_keys sollte folgende Berechtigungen haben: rwx--
  • Den Public Key kopieren Sie dann in die Datei authorized_keys und können sich danach per SSH mittels Key einloggen.

Einrichtung bei af.stack

Wenn Sie Images im DCP für af.stack-Server einrichten, kann es bei bestimmten Linux-Distributionen sogar unumgänglich sein SSH-Keys einzurichten, da der Login initial ohne Passwort stattfindet. Das DCP übernimmt für Sie dabei die Erstellung des Key-Pairs. Beachten Sie, dass beim Erstellen der Keys der Private Key nur einmalig eingeblendet wird. Diesen müssen Sie definitiv kopieren und speichern, da ohne diesen das Key-Pair nicht verwendet werden kann.
Gehen Sie dazu folgendermaßen vor:

  1. Legen Sie bestenfalls noch vor dem Erstellen eines Images ein Key-Pair an. Die Option dafür finden Sie unter "af.stack > SSH Keys > Neu anlegen".
  2. Vergeben Sie im nächsten Fenster einen Namen für das zu erstellende Key-Pair, um es später leichter identifizieren zu können.
  3. Im nächsten Fenster wird Ihnen nun der Public und Private Key angezeigt. Kopieren Sie den Private Key über den Button "Copy Key" (achten Sie auch darauf wirklich den Private Key zu kopieren!) und fügen Sie diesen in eine neue Textdatei ein, die Sie mit einem Texteditor Ihrer Wahl erstellen. Sie können die Datei "id_rsa" nennen, was dem Unix-Standard entspricht. Speichern Sie die Datei und schließen Sie sie.
  4. Zuletzt muss auch der Public Key in einer Datei gespeichert werden. Gehen Sie dabei vor wie im letzten Schritt, kopieren jedoch den Public Key und speichern Sie diesen ebenfalls in einer Textdatei, diesmal mit dem Namen "id_rsa.pub".
  5. Beide Dateien sollten sich im Nutzerordner ~/.ssh befinden und müssen bei Bedarf noch dorthin verschoben werden.
  6. Falls Sie das Key-Pair vor dem Anlegen eines Images erstellt haben, müssen Sie anschließend beim Erstellen des Images die zugehörigen Keys auswählen.

Anschließend können Sie sich auf dem af.stack Server anmelden, wie bei "Einrichtung über die Kommandozeile" weiter oben beschrieben.

Import vorhandener Keys bei af.stack

Sie können auch bereits vorhandene SSH-Keys bei af.stack importieren. Hierfür gehen Sie wieder zu "af.stack > SSH Keys > Neu anlegen", wählen jedoch statt "Neu erstellen" die Option "importieren". Hier können Sie nun den Public Key eines vorhandenen Key-Pairs einfügen. Drücken Sie anschließend auf "Erstellen". Nun können Sie sich mit Ihrem Key-Pair anmelden.