Weiterlesen mit NEWS. Jetzt testen.
Lesezeit ca. 5 Min.

Die Secure Shell im praktischen Einsatz: Sicherer Transfer


LinuxUser Spezial - epaper ⋅ Ausgabe 2/2019 vom 09.05.2019

Die Secure Shell bietet alles, was Sie für den sicheren Shell-Zugriff und das verschlüsselte Übertragen von Daten benötigen.


Artikelbild für den Artikel "Die Secure Shell im praktischen Einsatz: Sicherer Transfer" aus der Ausgabe 2/2019 von LinuxUser Spezial. Dieses epaper sofort kaufen oder online lesen mit der Zeitschriften-Flatrate United Kiosk NEWS.

Bildquelle: LinuxUser Spezial, Ausgabe 2/2019

© Mamapo, 123RF

README

Viele Shell-Kommandos dienen der Arbeit im Netzwerk. In diesem Beitrag lernen Sie die Möglichkeiten und wichtigsten Konfigurationseinstellungen rund um die Secure Shell kennen.

Die Secure Shell Ssh gilt heute als Standard für Shell-Sitzungen auf entfernten Rechnern. Sie verschlüsselt die Verbindung zum entfernten System, als Identifikation dient in der Regel ein mit Kennwort versehener Schlüssel.

Ssh bietet aber mehr als nur den sicheren Zugriff aus der Ferne: ...

Weiterlesen
epaper-Einzelheft 11,99€
NEWS 30 Tage gratis testen
Bereits gekauft?Anmelden & Lesen
Leseprobe: Abdruck mit freundlicher Genehmigung von LinuxUser Spezial. Alle Rechte vorbehalten.
Lesen Sie jetzt diesen Artikel und viele weitere spannende Reportagen, Interviews, Hintergrundberichte, Kommentare und mehr aus über 1000 Magazinen und Zeitungen. Mit der Zeitschriften-Flatrate NEWS von United Kiosk können Sie nicht nur in den aktuellen Ausgaben, sondern auch in Sonderheften und im umfassenden Archiv der Titel stöbern und nach Ihren Themen und Interessensgebieten suchen. Neben der großen Auswahl und dem einfachen Zugriff auf das aktuelle Wissen der Welt profitieren Sie unter anderem von diesen fünf Vorteilen:

  • Schwerpunkt auf deutschsprachige Magazine
  • Papier sparen & Umwelt schonen
  • Nur bei uns: Leselisten (wie Playlists)
  • Zertifizierte Sicherheit
  • Freundlicher Service
Erfahren Sie hier mehr über United Kiosk NEWS.

Mehr aus dieser Ausgabe

Titelbild der Ausgabe 2/2019 von Tails in der neuen Version 3.13.1: Inkognito. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Tails in der neuen Version 3.13.1: Inkognito
Titelbild der Ausgabe 2/2019 von Sicherheitsdistribution Qubes OS 4.0: Sichere Würfel. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Sicherheitsdistribution Qubes OS 4.0: Sichere Würfel
Titelbild der Ausgabe 2/2019 von Superuser-Rechte für normale Anwender: Starkes Duo. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Superuser-Rechte für normale Anwender: Starkes Duo
Titelbild der Ausgabe 2/2019 von Secure Shell mit Komfort: Aufgeschlossen. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Secure Shell mit Komfort: Aufgeschlossen
Titelbild der Ausgabe 2/2019 von Shell und Netz: Datenübertragung: Datenschieber. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Shell und Netz: Datenübertragung: Datenschieber
Titelbild der Ausgabe 2/2019 von EasySSH: SSH-Verbindungen per Mausklick: Einfach SSH. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
EasySSH: SSH-Verbindungen per Mausklick: Einfach SSH
Vorheriger Artikel
Superuser-Rechte für normale Anwender: Starkes Duo
aus dieser Ausgabe
Nächster Artikel Secure Shell mit Komfort: Aufgeschlossen
aus dieser Ausgabe

Ssh bietet aber mehr als nur den sicheren Zugriff aus der Ferne: Bei Bedarf transferieren Sie damit Daten oder starten GUI-Programme von anderen unixoiden Systemen. Für den Zugriff auf Microsoft-Betriebssysteme benötigen Sie ein Programm wie Putty. Bei vielen Befehlen rund um Ssh dürfen Sie einen vom Standard 22 abweichenden Port angeben. Die wichtigsten Optionen für den Ssh-Befehl fasst die TabelleSsh: Optionen zusammen.

Arbeit mit Schlüsseln

Selbst wenn Sie keine eigenen Schlüssel für die Kommunikation erzeugen, legt der SSH-Client jene der Gegenstelle im Ordner.ssh im Home-Verzeichnis ab. In diesem Verzeichnis finden Sie außerdem verschiedene Dateien, die für den Betrieb der Software nötig sind (siehe TabelleSSH-Client ). Möchten Sie Ihren SSH-Server gegen den Versuch eines Einbruchs robuster machen, bearbeiten Sie dazu dessen Konfigurationsdatei sshd.config. Dort setzen Sie die Einträge aus der TabelleMehr Sicherheit entsprechend Ihrer Vorstellungen.

Secure Shell

Schlüssel ohne Kennwort

Das Anmelden ausschließlich per Schlüssel ohne Kennwort stellt die technisch simpelste Methode zum automatischen Übertragen von Daten und für komfortable Logins dar. Sie sollten sie allerdings nur innerhalb geschützter Netze verwenden, keinesfalls über das Internet (außer Sie arbeiten via VPN oder über einen SSH-Tunnel).

Zum Anlegen eines Schlüssels nutzen Sie den Shell-Befehl Ssh-keygen 1. Dabei geben Sie zusätzlich mit der Option -tTyp (hier: RSA) den Typ des Schlüssels und mittels -bBits (hier: 4096) die Schlüssellänge an. Je höher die Schlüssellänge, umso schwerer fällt es einem Angreifer, die Kommunikation zu knacken. Beim Prompt für das Passwort drücken Sie die Eingabetaste.

Im Verzeichnis ~/.ssh/ befinden sich daraufhin die beiden Dateien id_rsa und id_rsa.pub. Die erste enthält den privaten Teil des Schlüssels; schützen Sie diesen unbedingt vor dem Zugriff Dritter. Die zweite enthält den öffentlichen Schlüssel, den Sie bei Bedarf auf andere Rechner übertragen. Prüfen Sie in jedem Fall die Attribute der Schlüsseldateien, damit niemand den privaten ausliest.

Nur Sie selbst dürfen die Rechte zum Lesen und Schreiben besitzen, die Gruppe und alle anderen sollten keinerlei Rechte haben. Gegebenenfalls ändern Sie das mithilfe des Befehls chmod 600 ~/.ssh/*. Für öffentlich zugängliche Server schützen Sie das Kennwort im privaten Teil des Schlüssels, indem Sie diesen mittels des Openssl-Befehls in ein anderes Format umwandeln, etwa PKCS#8. Näheres dazu entnehmen Sie der Manpage des Tools.

Der Autor

Harald Zisler beschäftigt sich seit den frühen 1990er-Jahren mit FreeBSD und Linux. Zu Technik-und EDV-Themen verfasst er Zeitschriftenbeiträge und Bücher. Aktuell ist die vierte Auflage seines Kompendiums „Computer-Netzwerke“ beim Rheinwerk Verlag erschienen.

Möchten Sie einen Schlüssel mit Kennwort erzeugen, funktioniert das auf demselben Weg wie ohne Vergabe eines Passworts. An der entsprechenden Stelle geben Sie dann die gewünschte Zeichenkette ein, statt die Abfrage mit der Eingabetaste zu überspringen. Damit erhalten Sie schon einen guten Schutz. Selbst wenn einem Eindringling Ihr privater Schlüssel in die Hände fällt, kann er sich dann ohne Passwort trotzdem nicht am entfernten System anmelden.

1 Ein Schlüssel ohne Passwort erleichtert zwar den automatisierten Transfer von Daten, birgt aber erhebliche Risiken in Bezug auf die Sicherheit beim Zugriff.


2 Mit dem Befehl ssh-copy-id übertragen Sie einen Schlüssel direkt auf das Zielsystem.


Öffentlicher Schlüssel

Um den öffentlichen Teil des Schlüssels auf das Zielsystem zu übertragen, haben Sie mehrere Möglichkeiten. Steht der Befehl Ssh-copy-id bereit, verwenden Sie den Aufruf in der folgenden Form:

$ ssh-copy-idUser @Host

Abbildung 2 zeigt den Ablauf. Den Rechner identifizieren Sie dabei wahlweise über den Namen oder die IP-Adresse. Nachdem im Beispiel zum ersten Mal eine Verbindung zustande kam, sehen Sie die Frage, ob Sie den Schlüssel der Gegenseite akzeptieren möchten.

Eine weitere Möglichkeit besteht darin, per SFTP den öffentlichen Schlüssel auf das Zielsystem zu übertragen und mittels cat id_rsa.pub .ssh/authorized_ keys an die Datei.ssh/authorized_ keys anzuhängen. Beachten Sie dabei, unbedingt das Zeichen für die Standardausgabe doppelt zu verwenden, sonst überschreiben Sie die Datei.

Haben Sie einen Schlüssel geändert, entfernen Sie den nicht mehr zutreffenden Eintrag aus der Datei known_hosts mit dem Kommando ssh-keygen -RRechner in einem Terminal 3.

Verbindungen speichern

Für immer wieder benötigte Verbindungen legen Sie in der Datei.ssh/config bei Bedarf Aliase für den vereinfachten Aufruf an. Listing 1 zeigt ein Beispiel dazu für den Benutzer hz auf einer Maschine im lokalen Netz. In Abbildung 4 sehen Sie das Anmelden am lokalen System und anschließend den Zugriff per Alias und sowie Schlüssel ohne Kennwort auf ein anderes Zielsystem. Mit exit oder [Strg]+[D] melden Sie sich vom entfernten Rechner wieder ab.

Sie haben die Möglichkeit, eine Sitzung als vollwertige Shell zu nutzen, oder Sie setzen nur ein Kommando ab. Nach dessen Ausführung beendet sich die Verbindung automatisch 5.

Arbeiten Sie an einem Linux-PC, steht die Möglichkeit offen, mittels Ssh Tools mit grafischer Oberfläche am entfernten Rechner zu starten und deren Ausgabe umzuleiten. Dazu nutzen Sie die Option -Y. Bei langsamen Verbindungen, wie über das Internet, schalten Sie zudem mit -C die Datenkompression ein, um Latenzen zu verringern.

3 Ändern Sie einen Schlüssel, entfernen Sie den alten Schlüssel für den entsprechenden Rechner, den Sie nicht mehr verwenden möchten, mit einem einfachen Befehl.


4 Aliase für die Verbindung erleichtern das Anmelden am entfernten Rechner, wenn dort ein anderes Benutzerkonto für den Zugang im Einsatz ist.


5 Brauchen Sie keine komplette Session, führen Sie mittels Ssh nur ein einzelnes Kommando auf dem Zielsystem aus. Das macht den Einsatz sehr effizient


6 Ssh bietet eine Möglichkeit, GUI-Programm auf dem entfernten System zu starten und die Ausgabe über eine sichere Leitung auf den eigenen Bildschirm umzuleiten.


7 In Kombination mit einem Tool wie Tar kopieren Sie einen Verzeichnisbaum auf einen entfernten Rechner oder von diesem auf den lokalen.


Auch hier funktionieren Aliase und der Einsatz von Schlüsseln beim Anmelden. Im Beispiel aus Abbildung 6 startet der Texteditor Gedit auf dem entfernten System. Damit Sie das Terminal nicht mit dem Programm blockieren, starten Sie es durch Anhängen eines Kaufmannsund-Zeichens („Ampersand“) im Hintergrund. Das gezeigte Umleiten der Standardausgabe für Fehler nach /dev/null unterdrückt diverse Debug-Meldungen am Terminal.

Daten übertragen

Zum Übertragen von Daten integrieren Sie Ssh bei Bedarf in eine Pipe. Im Zusammenspiel mit Tar kopieren Sie so komplette Verzeichnisbäume über das Netzwerk (Listing 2). Hier beschleunigt unter Umständen eine Komprimierung (-C) den Vorgang. So gehen Sie auch bei anderen Befehlen vor, wie etwa bei Dd. Wie es in der Praxis mit Tar funktioniert, zeigt Abbildung 7.

Mit dem Befehl Scp steht ein verschlüsselndes, mit dem normalen Cp verwandtes Kommando bereit, das sich an den Remote-Copy-Befehl rcp von BSD anlehnt. Allerdings stellt Scp zusätzlich SSH-spezifische Optionen bereit (siehe Tabelle Scp: Optionen).

Grundsätzlich übergeben Sie dem Befehl lediglich eine Quelle sowie ein Ziel, wobei beide auf dem entfernten System liegen dürfen. Verwenden Sie für die Pfadangabe auf dem entfernten Rechner nach dem Doppelpunkt einen Schrägstrich, signalisiert das einen absoluten Pfad; anderenfalls handelt es sich um eine Angabe relativ zum Home-Verzeichnis des Benutzers auf dem System. Abbildung 8 zeigt einige Beispiele zum Übertragen von Daten: Das erste veranschaulicht, wie Sie eine lokal vorhandene Datei auf das entfernte System übertragen; es folgt das umgekehrte Vorgehen. Die dritte Aufgabe besteht darin, Daten von einem entfernten System auf einen zweiten Remote-Rechner zu kopieren. Im Beispiel fragt die Software lediglich einmal das Kennwort ab, denn der Benutzer zh@localhost arbeitet hier mit einem Schlüssel ohne Kennwort, den er bei hz@192.168.0.82 hinterlegt hat. Normalerweise gibt es an dieser Stelle zwei Abfragen.

8 Mit dem Befehl Scp übertragen Sie Dateien zwischen zwei Rechnern, bei Bedarf sogar zwischen zwei entfernten Systemen, wobei die Daten nicht über den lokalen Host laufen.


Die letzte Aktion in Abbildung 8 zeigt das Übertragen eines kompletten Verzeichnisses auf ein anderes System.

Fazit

Die Secure Shell bietet von Haus aus bereits zahlreiche Möglichkeiten für Fernsitzungen und das Transferieren von Daten. Kombinieren Sie diese Fähigkeiten mit bekannten Shell-Befehlen, erzielen Sie einen hohen Komfort. Zudem bietet die SSH-Verschlüsselung Schutz vor Lauschern und Angreifern. (agr)