SSH-Serverzugang ohne Passwort
SSH wird zur Authentifizierung und sicheren, verschlüsselten Datenübertragung verwendet. Es ermöglicht eine kryptographisch gesicherte Kommunikation über unsichere Netze, z.B. zum eigenen Webserver, und bietet ein hohes Sicherheitsniveau. Notwendig ist ein SSH-Zugang beispielsweise, wenn man eine Drupal-Webseite mit Hilfe von Drush administrieren möchte. In der Regel ist der SSH-Zugang so eingerichtet, dass man sich mit Hilfe eines geeigneten Programms (z.B. PuTTY) und einer Username-Passwort-Kombination anmeldet. Praktischer ist es, wenn das Login mit Usernamen und SSH-Schlüssel erfolgt. So kann man leicht zusätzlichen Usern den Zugang zum Server gestatten, ohne ein Passwort weitergeben zu müssen oder zusätzliche SSH-Logins einzurichten. Das Ganze geht recht einfach. Nötig sind die folgenden Schritte.
Hinweis: Je nach Server-Konfiguration kann es sein, dass man Verzeichnisrechte manuell setzen muss. Das ist bei unserem Server nicht der Fall.
- Zuerst erstellt man ein eigenes Schlüsselpaar. Das muss man nur einmal machen und kann die Schlüssel für beliebig viele Websites verwenden.
Sehr einfach geht die Schlüsselerstellung mit PuTTYGen. Dazu startet man das Programm, wählt unter "Type of key to generate" den Button "SSH-2 RSA" und klickt auf "Generate". Anschließend bewegt man die Maus über das leere Feld unter dem Fortschrittsbalken, um Zufallswerte zu erzeugen.
Sobald die Erstellung des SSH2-Key abgeschlossen ist, speichert man den Public-Key via "Save public key" mit der Endung ".pub". Eine Passphrase muss man nicht eintragen - es erhöht aber die Sicherheit. Nach einer Sicherheitsabfrage wird der Key dann gespeichert.
Man kann ausserdem den kompletten Schlüssel, der jetzt unten in dem zuvor leeren Bereich erscheint, in die Zwischenablage kopieren und später in die Datei authorized_keys eintragen.Den privaten Key speichert man via "Save private key" mit der Endung ".ppk". Den Speicherort gut merken, denn der wird später von PuTTY abgefragt.
-
Als nächstes bereiten wir unseren Webspace für den SSH-Zugriff via Keyfile vor.
Dazu kann man sich entweder per SSH (hier noch mit Passwort) einloggen oder mit einem FTP-Programm auf den Server zugreifen. Nach dem Login wechselt man in das Verzeichnis oberhalb von public_html (public_html ist in unserem Beispiel das Root-Verzeichnis für den Webserver, in anderen Konfigurationen heißt der Ordner auch oft htdocs oder html) und legt dort ein Verzeichnis ".ssh" (mit Punkt vor dem ssh!) an. Dann wechselt man in dieses Verzeichnis und legt eine Datei "authorized_keys" an (ohne Endung!). In diese trägt man jetzt alle Public Keys der User ein, die per SSH auf diesen Webspace zugreifen dürfen - natürlich auch den zuvor mit PuTTYGen erzeugten. Jeder key erhält eine eigene Zeile. Damit sind serverseitig alle Vorbereitungen abgeschlossen. -
Als letztes richten wir unseren SSH-Zugang noch in PuTTY ein.
Dazu starten wir PuTTY und tragen zunächste die Server-IP oder den Hostnamen ein, sowie den Port und unter "Saved Sessions" einen aussagekräftigen Namen, damit wir den Zugang wiederfinden, wenn es mal mehr werden sollten. Unter "Connection Type" klicken wir auf "SSH". Der Standardport für SSH ist übrigens der Port 22, bei manchen Hosting-Providern lautet dieser jedoch anders - z.B. 222. Daher am besten vorher mal nachschauen, welches der richtige ist.
Jetzt links "Connection >> Data" anklicken und im Feld "Auto-Login username" den SSH-Usernamen eintragen (den findet man in der Regel in den Zugangsdaten zum Webspace, bzw. hat ihn beim Einrichten des Servers selber vergeben ;-) ). Darunter bei "When username is not specified" "Prompt"auswählen - dann wird bei fehlendem Key das Passwort des Users abgefragt.
Jetzt noch "Connection >> SSH >> Auth" anklicken und dort unter "Private key file for authentication" die oben erstellte private Schlüsseldatei auswählen (also die mit der Endung .ppk). Dann nochmal oben links auf "Session" klicken und die Einstellungen durch klicken auf "Save" abspeichern.
Wenn man jetzt auf "Open" klickt öffnet sich eine SSH-Konsole und man wird automatisch mit dem Usernamen eingeloggt. Funktioniert das nicht, muss man nochmal prüfen, ob man die richtigen Keys verwendet hat, der Username stimmt und die authorized_keys-Datei auch wirklich in .ssh oberhalb des Root-Ordners liegt.