SSH

Alle ausklappen Alle einklappen

Was ist SSH und wozu wird es benötigt?

Mittels Secure Shell (SSH) können Sie eine sichere Verbindung zwischen Ihrem PC und dem Rechner, auf dem Ihre Webseite liegt, herstellen. Webmaster können so auf die Shell des Webservers zugreifen und dort Kommandos ausführen. Neben der Übermittlung von Benutzerdaten erfolgt dabei auch die Datenübertragung verschlüsselt.

Einige Anwendungsbeispiele für SSH:

  • Aufbau einer sicheren Verbindung zum Server und sichere Übertragung von Dateien
  • Editieren von Dateien direkt auf dem Server
  • Datensicherung z.B. Erstellen und Einspielen von Datenbankdumps
  • Zugriff auf Ihre SQL-Datenbank bei DomainFactory über ein externes Datenbanktool
  • Setzen von Dateirechten

Wie kann ich per SSH auf meinen Account bei DomainFactory zugreifen?

Um sich per SSH mit Ihrem Account bei DomainFactory zu verbinden, benötigen Sie Ihre SSH-Zugangsdaten. Sofern SIe Windows als Betriebssystem nutzen benötigen Sie ein SSH-Programm. Informationen zu diesen beiden Punkten erhalten Sie in den Fragen weiter unten auf dieser Seite.

Das folgende Beispiel beschreibt, wie Sie eine SSH-Verbindung mit dem Programm PuTTY herstellen. Die Handhabung ist jedoch bei anderen SSH-Programmen ähnlich.

  • Starten Sie das SSH-Programm und geben Sie Ihren Domainnamen in das Feld "Host Name (or IP address)" ein:

  • Achten Sie bitte darauf, dass als "Connection type" "SSH" gewählt ist. Der Port wird daraufhin automatisch auf 22 angepasst.
     
  • Wechseln Sie anschließend in den Bereich "SSH". Unter "Preferred SSH protocol version" muss die Version 2 ausgewählt sein:

  • Wechseln Sie dann wieder zurück in den Bereich "Sessions". Dort können Sie jetzt unter "Saved Sessions" einen Namen für die Verbindung vergeben und die Einstellungen mit einem Klick auf "Save" für die nächste SSH-Sitzung speichern.
     
  • Klicken Sie auf "Open", um die SSH-Verbindung zu starten.
     
  • Wenn Sie die Verbindung zum ersten Mal aufbauen, erhalten Sie eine Warnung, die Sie darüber informiert, dass der Server Ihrem SSH-Programm noch nicht bekannt ist. Außerdem wird Ihnen der zum Server gehörige Fingerprint angezeigt. Um sicher zu gehen, dass die Verbindung mit dem richtigen Server aufgebaut wird, vergleichen Sie diesen Fingerprint bitte mit dem Fingerprint, der Ihnen im Kundenmenü angezeigt wird (Siehe "Wie lauten die SSH-Fingerprints für meinen Account?").

  • In einer Konsole werden Sie dann nach den Login-Daten gefragt. Tragen Sie hier bitte den Login Ihres SSH-Kontos und das Passwort ein:

Jetzt sind Sie über SSH mit Ihrem Account bei DomainFactory verbunden.

 

Bei Linux oder MacOS-Betriebssystemen können Sie sich einfach via Consolenbefehl einloggen:

ssh ssh-user@ip-adresse (altenativ können Sie auch Ihre Domain verwenden: ssh ssh-user@ihre-domain.tld)

Wo finde ich meine SSH-Zugangsdaten?

Ihre SSH-Zugangsdaten finden Sie im Kundenmenü, wenn Sie den jeweiligen Auftrag wählen und in der linken Navigation bei "Webspace" auf "SSH-Accounts" klicken.

Sollte noch kein SSH-Zugang eingerichtet sein, können Sie dort über den Link "Login einrichten" einen SSH-Zugang erstellen.

Wo finde ich einen SSH-Client?

Um SSH nutzen zu können, benötigen Sie ein SSH-Programm. Dieses ist bei einigen Betriebssystemen schon integriert. Windows enthält aber z.B. standardmäßig kein SSH-Programm. Im Internet finden Sie jedoch eine gute Auswahl an kostenlosen SSH-Programmen.

Damit Sie alle wichtigen Anwendungen von SSH nutzen können, sollte das Programm die folgenden Protokolle unterstützen:

  • SSH, um auf Shellebene auf einen Server zugreifen zu können,
  • SCP oder SFTP (SSH File Transfer Protocol), um Dateien zwischen dem Server und Ihrem PC kopieren zu können.

Die bekanntesten SSH-Programme sind PuTTY (für Windows und Unix), WinSCP (für Windows) sowie OpenSSH für verschiedene andere Betriebssysteme wie z.B. Linux und Mac OS X.

Wie lauten die SSH-Fingerprints für meinen Account?

Die SSH-Fingerprints für Ihren Account können Sie im Kundenmenü einsehen:

  • Klicken Sie im Kundenmenü in der linken Navigation auf "SSH-Accounts". Auf dieser Seite werden Ihnen dann unter "Informationen" die SSH/SFTP Key Fingerprints angezeigt.

Wie kann ich per SSH extern auf meine SQL-Datenbank zugreifen?

Wenn in Ihrem Webhosting-Paket ein SSH-Zugang enthalten ist, können Sie über einen SSH-Tunnel extern auf Ihre Datenbank zugreifen.

Bei Einrichtung eines SSH-Tunnels werden TCP/IP-Verbindungen, die lokal auf Ihrem Rechner auf localhost:<port> zugreifen, über eine verschlüsselte Verbindung auf einen vorab zugewiesenen Port bzw. Socket des Servers weitergeleitet. Die Daten der Verbindung werden dabei geschützt übertragen.

Bitte beachten Sie: Ein SSH-Tunnel ist nicht dazu gedacht, ständig eine Verbindung aufrecht zu erhalten, sondern in erster Linie dazu, kurz einige Tests auszuführen oder Daten in die SQL-Datenbank zu schreiben.

Der Zugriff auf die Datenbanken erfolgt ausschließlich über einen Socket.

Der Tunnel kann unter Windows, OSX oder Linux über die Kommandozeile bzw. dem Terminal über den 'ssh' Befehl aufgebaut werden:

 

Tunnel für MariaDB:

ssh -N -L 5001:/var/lib/mysql/mysql.sock ssh-user@domain.tld

 

Tunnel für MySQL5.7:

ssh -N -L 5001:/var/lib/mysql5/mysql5.sock ssh-user@domain.tld

 

Beachten Sie bitte das dieser Befehl lokal, und nicht per SSH auf dem Server ausgeführt werden muss.

Sie werden nun zur Eingabe des Kennwortes für den SSH-Benutzer aufgefordert (sofern keine public/private Key Authentifizierung eingerichtet wurde). Beachten Sie bitte das nach eingabe des Kennwortes keine weitere Ausgabe erfolgt. Das entsprechende Fenster muss für die Dauer die der Tunnel benötigt wird geöffnet bleiben.

Dieser Befehl verbindet Ihren lokalen Port 5001 mit dem Socket des Datenbankservers. Sie können nun unter Verwendung des entsprechenden Datenbankbenutzers und Kennwortes eine Verbindung zu localhost bzw. 127.0.0.1 und dem Port 5001 herstellen.

Wie kann ich für den SSH-Login einen Public-/Private-Key nutzen?

SSH unterstützt neben der klassischen Authentifizierung mittels Benutzernamen/Kennwort auch andere Authentifizierungsmechanismen. Folgend wird die Einrichtung und Verwendung einer Authentifizierung beschrieben, die auf einem Schlüsselpaar (Private-/Public-Key) basiert. Im Vergleich zur Passwort-Authentifizierung bietet dies die Möglichkeit zu einem automatisierter Login, ohne Hinterlegung eines Kennworts.

Erzeugung eines Schlüsselpaars

Sofern Sie noch über kein eigenes Schlüsselpaar verfügen, kann dieses wie folgt ganz einfach über die Shell erzeugt werden. Bitte loggen Sie sich dafür per SSH z.B. auf Ihren Server ein und geben Sie folgenden Befehl ein:

 

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/[serverpfad]/.ssh/id_rsa):     <-- Enter drücken
Enter passphrase (empty for no passphrase):                  <-- Passwort eingeben, mit dem der private Schlüssel geschützt werden soll
Enter same passphrase again:                                 <-- Passwort wiederholen
Your identification has been saved in /[serverpfad].ssh/id_rsa.
Your public key has been saved in /[serverpfad]/.ssh/id_rsa.pub.
The key fingerprint is:
ef:a1:14:3b:ce:6d:af:b2:5f:66:10:35:70:ee:4e:db u*****@*****.ispgateway.de

(*) Alternativ kann z.B. auch unter Windows das Tool puttygen.exe verwendet werden.

Nun wurden zwei Schlüssel im Unterordner ".ssh" erzeugt. Dabei beinhaltet die Datei "id_rsa" den privaten und "id_rsa.pub" den öffentlichen Schlüssel.

Der private Schlüssel sollte nun von dem Server heruntergeladen werden (z.B. per SCP) und an einem sicheren Ort auf der eigenen Festplatte abgelegt werden. Löschen Sie anschließend den privaten Schlüssel auf dem Server. Der private Schlüssel sollte aus Sicherheitsgründen nicht auf dem Server liegen!
Bitte achten Sie darauf, dass der Schlüssel gut gesichert werden sollte, da er nicht ersetzbar ist und neu erzeugt werden muss, sofern er gelöscht wird oder verloren geht.

Public-Key für Login hinterlegen

Damit zukünftig ein Login über Ihren privaten Schlüssel möglich ist, ist es erforderlich, den öffentlichen Schlüssel in Ihrem Home-Verzeichnis im Unterordner ".ssh" in der Datei "authorized_keys" zu hinterlegen. Dabei ist es möglich, mehrere öffentliche Schlüssel in dieser Datei zu hinterlegen, um mehreren Nutzern den Zugriff auf diesen Benutzer per SSH zu ermöglichen.

Sollte der Ordner ".ssh" noch nicht existieren, kann er wie folgt angelegt werden:

 

cd ~
mkdir .ssh

Anschließend müssen Sie in den Ordner ".ssh" wechseln und Ihren öffentlichen Schlüssel in der Datei "authorized_keys" ablegen. Sollten Sie aus dem vorherigen Abschnitt sich einen neuen Schlüssel angelegt haben, so wurde der ".ssh"-Ordner bereits für Sie erstellt und der öffentliche Schlüssel befindet sich in der Datei "id_rsa.pub". In diesem Fall ist nur noch eine Umbenennung notwendig:

 

mv id_rsa.pub authorized_keys

Nun müssen noch die Rechte angepasst werden:

 

chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/*

Jetzt sollten Sie testen, ob ein Login mit Ihrem Private-Key möglich ist. Funktioniert er nicht, ist in einem der vorherigen Schritte ein Fehler unterlaufen.

Login mit PuTTY

Im kostenfreien SSH-Client "PuTTY" kann vor dem Verbindungsversuch ein privater Schlüssel ausgewählt werden. Bitte wählen Sie hierfür unter "Connection", "SSH", "Auth" Ihren privaten Schlüssel aus. Anschließend können Sie wie gewohnt die Verbindung herstellen.

Eine Übersicht über die wichtigsten SSH-Kommandos

Per SSH bzw. PHP-Shell können Sie direkt auf der Kommandozeile des Linux-Servers Ihres DomainFactory Accounts arbeiten – vergleichbar mit der Eingabeaufforderung eines Windows-PCs.

Bitte beachten Sie:
Die Shell ist ein sehr mächtiges Werkzeug. Mit einem kleinen Tippfehler können Sie großen Schaden anrichten und z.B. Ihre kompletten Daten unwiederbringlich löschen. Sie sollten also sehr vorsichtig bei der Verwendung der Befehle sein! Zu viel Angst müssen Sie aber nicht haben: Auf kritische Systembereiche des Servers und Daten anderer Kunden können Sie natürlich nicht zugreifen.

Übersicht über die wichtigsten SSH-Kommandos:

  • cp – kopiert eine Datei A von Ort B an Ort C
    Beispiel: cp ./B/A.php ./C/A.php

  • mv – verschiebt eine Datei bzw. benennt diese um
    Beispiele: mv vorher.txt nachher.txt
    mv vorher.txt ../ordner/nachher.txt

  • rm – löscht eine Datei
    Beispiel: rm datei.php

  • cd – wechselt das Verzeichnis
    Beispiel: cd ../ordner

  • mkdir – erstellt ein Verzeichnis
    Beispiel: mkdir ordner

  • find – sucht eine Datei
    Beispiel: find . | grep name

  • ls – gibt den Verzeichnisinhalt aus
    Beispiel: ls -la

  • chmod – ändert die Zugriffsrechte
    Beispiel: chmod 765 datei.pl

  • touch – legt eine neue leere Datei an
    Beispiel: touch datei.php

  • tar -xfzv – entpackt .tar(.gz)-Dateien
    Beispiel: tar -xfzv archiv.tar.gz

  • unzip – entpackt .zip-Dateien
    Beispiel: unzip archiv.zip

  • tar -cvzf – packt die Dateien eines Ordners in ein Archiv
    Beispiel: tar -cvzf archiv.tar.gz /kunden/ordner

Geben sie uns Ihr Feedback

Das freut uns und wir haben Ihre positive Rückmeldung vermerkt. Wenn Sie möchten, teilen Sie uns gerne noch Details mit: Was hat Ihnen besonders gefallen? Welche Informationen waren besonders hilfreich?

Leider können wir Ihr Feedback nicht direkt beantworten, wir verwenden es jedoch, um die FAQ weiterzuentwickeln und zu verbessern. Wir freuen uns auf Ihre Antwort!

Geben sie uns Ihr Feedback

Es tut uns leid, dass Sie mit den FAQ nicht zufrieden sind. Welche Information vermissen Sie? Was können wir besser machen?

Leider können wir Ihr Feedback nicht direkt beantworten, wir verwenden es jedoch, um die FAQ weiterzuentwickeln und zu verbessern. Wir freuen uns auf Ihre Antwort!