SSH-Zugriff auf Strato Webspace mit Public Key Verfahren

Erstellt 13.06.2013  Kategorien  Buntes

Mit den PowerWeb Paketen des Hosters Strato verfügt man über einen Shell-Zugang (hier und hier) zu seinem Webspace. Damit ist es u.a. möglich, via rysnc und sftp Dateien auf den Webspace zu kopieren. Falls man das via Skripte erledigen möchte, ist es zweckmäßig, die Aufforderung zur Eingabe des Zugangskennworts unterdrücken zu können und anstelle dessen das Public Key Verfahren zu verwenden. Hierbei wird quasi dem Strato-Server einmal vorgegeben, daß der eigene Rechner vertrauenswürdig ist.

Um das Public Key Verfahren nuutzen zu können, müssen wir de öffentlichen Schlüssel (Public Key) des eigenen Rechners auf den Webserver kopieren. Für Windows habe ich hier eine unmöglich komplizierte Anleitung gefunden, die mich als Linux-User mehr als verwirrt hat. Letztlich ist es unter Linux babyleicht, und funktioniert folgendermaßen: Falls noch nicht geschehen, ein RSA-Schlüsselpaar erzeugen (kein Kennwort/Passphrase verwenden!):

$ ssh-keygen -t rsa

Im Verzeichnis ~/.ssh/ befinden sich nun die Dateien "id_rsa" (privater Schlüssel) und "id_rsa.pub" (öffentlicher Schlüssel). Der private Schlüssel ist geheim und sollte niemals öffentlich gemacht werden, da sonst Dritte Zugang zu Eurem Webserver erhalten können. Der öffentliche Schlüssel ist ein Hash des privaten Schlüssels und kein Geheimnis. Der öffentliche Schlüssel muß nun auf den Webspace kopiert werden. Dazu kopiert zunächst die Datei "id_rsa.pub" mit Eurem öffentlichen Schlüssel in eine weitere Datei mit dem Namen "authorized_keys" (ohne Dateiendung).
Falls Ihr vorher noch nie Public Key mit Eurem Strato Webspace verwendet habt, loggt Euch via ftp auf dem Strato-Server ein (dazu benötigt Ihr Eure Zugangsdaten. www.wunschname.de müßt Ihr natürlich mit Eurer URL ersetzen):

$ ftp www.wunschname.de@www.wunschname.de

Dann erzeugt Ihr zunächst auf der obersten Ebene Eures Webspaces ein Verzeichnis ".ssh" (Punkt am Anfang nicht vergessen!) und wechselt in das erstellte Verzeichnis.

$ ftp> mkdir .ssh
$ ftp> cd .ssh

Ggf. müßt Ihr noch lokal (also auf dem Computer vor Eurer Nase) in das Verzeichnis ~/.ssh/ wechseln; das geht in der ftp-Konsole folgendermaßen:

$ ftp> lcd ~/.ssh

Jetzt kommt der große Moment, und die Datei "authorized_keys" wird auf den Server kopiert. Anschließend könnt Ihr Euch auch schon ausloggen:

$ ftp> put authorized_keys
$ ftp> bye

Jetzt loggen wir uns versuchsweise via SSH ein, was nun ohne Kennwort-Eingabe funktionieren sollte:

$ ssh www.wunschname.de@ssh.strato.de

Bei vielen Linux-Servern kann man öffentliche Schlüssel komfortabel mit dem Befehl "ssh-copy-id" austauschen. Das hat bei mir aber leider nicht funktioniert, weshalb ich den oben beschriebenen Weg nehmen mußte.

Tags  strato,  ssh,  rsync,  public key,  ftp