SSH-Programme sind sehr vielseitige und wichtige Werkzeuge für Systemadministratoren. Sie bieten Ihnen nicht nur die Möglichkeit, um mittels SSH-Netzwerkprotokoll eine Verbindung zu Ihrem Server einzurichten. SSH können Sie auch dazu nutzen, um Dateien sicher zu kopieren, die Automatisierung zu vereinfachen oder um die Sicherheit Ihres Servers zu erhöhen. Öffnen Sie Ihren SSH-Client. Melden Sie sich mit Ihren Login-Daten bei Ihrem Server an und testen Sie die folgenden SSH-Tricks!

 

SSH-Trick 1 – Konfigurieren Sie eine sicherere SSH-Verbindung

Obwohl SSH für „Secure-Shell“ steht, sind SSH-Verbindungen in Ihrer Standard-Installation nur bedingt sicher. Aber Sie können einige Optimierungen vornehmen, um Ihre Verbindung sicherer zu machen. Die Parameter für diese Änderungen finden Sie in der folgenden Datei: / etc / ssh / sshd_config.

Verweigern Sie das Login für Root-Benutzer

Root-Benutzer sind gewöhnlich die User, die die umfangreichsten Rechte auf einem Server haben. Aus Sicherheitsgründen kann es deshalb sinnvoll sein, Root-Benutzern keinen SSH-Zugriff zu gewähren. Ändern Sie dafür die Zeile:

PermitRootLogin Yes

in

PermitRootLogin No

Legen Sie fest, welche Nutzer SSH-Verbindungen aufbauen dürfen

Zugriffsrechte für einzelne Benutzer definieren

Wenn Sie weniger als zehn Benutzer für Ihren Server eingerichtet haben, können Sie mit dem Befehl AllowUsers individuell festlegen, welcher Benutzer mit SSH eine Verbindung zu Ihrem Server herstellen kann. Die Benutzerliste ist begrenzt. Vergessen Sie vor allem nicht, sich selbst in die Besucherliste einzuschließen!

AllowUsers [INDIVIDUELLER BENUTZERNAME]

Hinweis zur Verwendung des Befehls AllowUsers:

Bitte beachten Sie, dass alle Benutzer, die Sie nicht explizit aufnehmen, verboten sind.

Zugriffsrechte für Benutzergruppen verwalten

Wenn Sie für Ihren Server mehr als zehn Benutzer eingerichtet haben oder wenn Sie Ihre Benutzer nach Gruppen verwalten möchten, verwenden Sie den Befehl AllowGroups für die Verwaltung der Zugriffsrechte.

Richten Sie zunächst Gruppen für Benutzer ein

sudo groupadd -r sshadmin

sudo usermod -a -G sshadmin [BENUTZERNAME]

Suchen Sie in der Datei sshd_config den Eintrag AllowGroups. Ändern Sie den Eintrag auf:

AllowGroups sshusers

Starten Sie nun den SSH-Daemon neu. Verwenden Sie dafür das Kommando:

sudo service ssh restart

Sollten Sie auf Ihrem Linux-System das Hintergrundprogramm systemd verwenden, geben Sie bitte folgenden Befehl ein:

sudo systemctl restart sshd

oder

sudo systemctl restart ssh

Exklusiver SSH-Zugriff via fester IP – Jump-Server einrichten

Es gibt noch eine weitere Sicherheitsoption, die ich Ihnen vorstellen möchte. Beschränken Sie die Möglichkeit von SSH-Sessions auszuführen auf einen bestimmten Server ein. Ein solcher Server wird auch Jump-Server genannt. Damit ein System als Jump-Server eingerichtet werden kann, muss dieser über eine feste IP-Adresse verfügen, die sich nicht ändert.

Die Einschränkung des SSH-Zugriffs auf zulässigen IP-Adressen nehmen Sie über iptables vor:

sudo iptables -A INPUT -p tcp -s [IPADDRESSE] –dport 22 -j ACCEPT

 

SSH-Tipp 2 – Kopieren von Dateien sicher auf und von Ihrem Server

Das SSH-Protokoll enthält die beiden Teilfunktionen SCP (Secure Copy) und SFTP (Secure FTP). Beides sind sichere Alternativen zu FTP (File Transfer Protocol) und RCP (Remote Copy). Mit Hilfe von SCP und SFTP können Sie z.B. Dateien sicher von Ihrem Desktop PC und Ihrem Server up- bzw. downloaden. Für die Übertragung müssen Sie den spezifischen Pfad zu dem entsprechenden Verzeichnis auf Ihrem Server kennen:

Upload mittels SCP

scp [EINDEUTIGE ADRESSIERUNG]:/opt/text/index.html

Als [EINDEUTIGE ADRESSIERUNG] können Sie z.B. die IP-Adresse oder der generische Hostname des jeweiligen Servers verwenden.

Im Folgenden werden Sie aufgefordert, das dazugehörige Passwort einzugeben.

[EINDEUTIGE ADRESSIERUNG] Passwort: *******************

Anschließend wird die entsprechende Datei übertragen.

Index.html 100% 0 0.0KB / s 00:00

Download mittels SCP

Selbstverständlich können Sie mittels SCP auch Dateien von Ihrem Server z.B. auf Ihren Desktop-PC downloaden. Geben Sie dafür folgende Syntax an:

scp [EINDEUTIGE ADRESSIERUNG]:/opt/text/index.html.

Der Vollstopp (.) teilt SCP mit, dass die Datei in das aktuelle Verzeichnis auf dem lokalen System kopiert werden soll.

Dateiübertragung mittels SFTP

SFTP funktioniert wie FTP, allerdings über die Kommandozeile. Neben einzelnen Dateien können Sie aber auch mehrere Dateien auf einmal übertragen.

Eröffnen Sie dazu zunächst eine SFTP-Sitzung:

sftp [EINDEUTIGE ADRESSIERUNG]

Geben Sie dann das Passwort für Ihren Benutzer ein.

Wenn Sie eine einzelne Datei oder mehrere Dateien auf Ihren Server uploaden möchten, verwenden Sie bitte Befehle nach dem folgenden Muster:

sftp> put index.html

sftp> put index.html shop.html oeffnungszeiten.html

sftp> mput * .html

Um Dateien vom Server zu erhalten:

Wenn Sie eine einzelne Datei oder mehrere Dateien auf Ihren Server downloaden möchten, verwenden Sie bitte Befehle nach dem folgenden Muster:

sftp> get index.html

sftp> get index.html shop.html oeffnungszeiten.html

sftp> mget * .html

 

SSH-Tipp 3 – Richten Sie eine passwortlose SSH-Verbindung für automatisiertes Scripting ein

Wenn Sie häufig automatisierte Aufgaben auf einem zweiten Server durchführen, ist es bequemer, wenn Sie zwischen den betreffenden Systemen eine passwortlose SSH-Verbindung herstellen. Jetzt werden Sie sich vielleicht fragen: Sind passwortlose SSH-Verbindungen nicht ein Sicherheitsrisiko? Ja, das wären sie, wenn Sie keine zusätzliche Sicherheitsstufe einbauen.

Nutzen Sie SSH, um eine Verbindung von Ihrem System zu jedem Server herzustellen, zu dem Sie eine passwortlose SSH-Verbindung einrichten möchten. Sobald Sie sich per SSH mit einem Server verbinden, erhalten Sie den Fingerprint des jeweiligen Servers, den Sie zur späteren Identifikation in der Datei know_hosts auf Ihrem System abspeichern können. Die know_hosts-Datei befindet sich im lokalen SSH-Verzeichnis Ihres Systems.

Sichern Sie Ihre Kommunikation, indem Sie eine Private-Key und einen Public-Key erzeugen. So können Sie kontrollieren, zu welchen Systemen Ihr Benutzer-Account eine Verbindung herstellen kann. Der Private Key wird ausschließlich auf Ihrem System (dem Original Host) gespeichert.

ssh-keygen -t rsa

cat. ssh / id_rsa.pub >> .ssh / authorized_keys

cat .ssh / authorized_keys | ssh ZIELRECHNER 'cat >> .ssh / authorized_keys'

Geben Sie das Passwort für den Zielrechner (Remote Host) ein

Geben Sie den Befehl exit ein, um zum ursprünglichen Server zurückzukehren

Mit SSH ist für den Zugang zum jeweiligen Zielrechner nun kein Passwort mehr erforderlich!

Hinweis:

Der Public-Key dagegen muss auf jedem Server (Remote Server) hinterlegt werden, zu dem Sie eine passwortlose Verbindung herstellen möchten. Die Hinterlegung des Private Keys, sowie die Eingabe des Passworts für den Zielrechner müssen Sie jeweils nur einmal vornehmen.

 

Fazit:

SSH ist ein bemerkenswertes Werkzeug, das Ihnen die Verwaltung Ihres Servers deutlich vereinfachen kann. Im Internet finden Sie viele weitere SSH-Tricks und Beispiele, wie Sie SSH benutzen können. Informieren Sie sich.

Welche SSH-Tricks nutzen Sie bei der Verwaltung Ihres Servers? Schicken Sie uns einen Kommentar. Wir freuen uns auf Ihr Feedback.

Wolf-Dieter Fiege

Wolf-Dieter Fiege ist Senior Specialist für Content Marketing & SEO und Chefredakteur des Blogs der Host Europe GmbH, einem der größten Anbieter von Domain- und Webhosting sowie Serverprodukten in Europa.

6 thoughts on “Drei SSH-Tricks für Administratoren

  1. Bei scp kommt zwischen dem Doppelpunkt nach dem Rechnernamen/IP und dem Pfad auf dem Zielrechner _kein_ Leerzeichen, dafür zwischen Quelle und Ziel:
    scp [EINDEUTIGE ADRESSIERUNG]:/opt/text/index.html .

    AllowUsers in der sshd_config kann auch user@host oder user@ip ,somit kann man auch damit das Login auf bestimmte Remote-Systeme beschränken, man braucht dafür kein iptables.

    Die iptables-Zeile oben erlaubt zwar die Verbindung auf ssh von einem Rechner, das ist aber so sinnlos, da default sowieso alles erlaubt ist. Da fehlt mindestens noch ein
    sudo iptables -A INPUT -p tcp –dport 22 -j DROP
    danach, damit er den Rest verbietet. Nebenbei sind da auch Tippfehler drin, es muss –dport heissen (statt -dport) und -j ohne Leerzeichen dazwischen. sudo schreibet man auch klein.

    • Hallo alx,

      tja, Microsoft Word hat bei den Code-Beispiel leider wieder einmal allerlei Unfug angestellt. Ich hoffe, dass ich jetzt alle Stellen gefixed habe.

      Beste Grüße und vielen Dank für die Hinweise

      Wolf-Dieter

  2. Hallo Herr Fiege,

    a) in mehrere von Ihnen vorgeschlagene Kommandozeilen haben sich verfaelschende Leerzeichen eingeschlichen, welche jeden unerfahrenen Benutzer zum Verzeifeln bringen werden.

    b) passwortlose, schluesselbasierte Logins sind nur dann sicher, wenn der Schluessel selber mit einem Passwort geschuetzt ist. Ansonsten fuehrt ein kompromittierter Account sofort zur Kompromittierung aller Rechner, welche diesen Schluessel akzeptieren.

    c) fuer das Kopieren von oeffentlichen Schluesseln nach ~/.ssh/authorized_keys auf anderen Systemen gibt es das Kommando ssh-copy-id. Das ist viel einfacher und intuitiver zu verstehen als der oben vorschlagene Prozess via Pipe und SSH.

    Mit freundlichen Gruessen
    Frank Thommen

    • Hallo Herr Thommen,

      vielen Dank für die Ergänzen bzw. Korrekturen.

      Mit besten Grüßen
      Wolf-Dieter Fiege

      P.S.: Durch die Verwendung von Word hatten sich bei den Code-Beispielen leider einige Fehler ergeben, die hauptsächlich durch automatische Formatierungen verursacht wurden. Ich hoffe, dass ich die Beispiel jetzt alle gefixed habe. Trotzdem auch für diesen Hinweis nochmals vielen Dank.

  3. den Schlüssel kopiert man am Besten mittels
    ssh-copy-id -i ~/.ssh/id_rsa.pub worker@remote-system
    auf das entfernte System
    (und bitte sudo statt Sudo)

    • Hallo Michael,

      vielen Dank für die Ergänzung.
      Mit besten Grüßen
      Wolf-Dieter
      P.S.: WordPress hat leider auch diesmal wieder allerlei Unfug bei den Code-Beispielen angerichtet. Ist bereits gefixed.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.