titel.jpg

Sicher senden

Zu Befehl: ssh, scp

01.07.2003
Die klassischen Unix-Programme Telnet und FTP erlauben Verbindungen und Datei-Transfers zu anderen Rechnern im Netz, sind aber unsicher: Alle Daten werden unverschlüsselt übertragen. Deswegen verwenden man heute die SSH-Tools (Secure Shell), die das Gleiche ermöglichen, dabei aber durch Verschlüsselung für Sicherheit sorgen.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

SSH (Secure SHell) steht sowohl für den Namen des Protokolls als auch für die Implementierung, das Programm selbst. Hier kommt eine sichere Methode, sich auf anderen Computern über eine verschlüsselte Verbindung einzuloggen, Kommandos (auch X-Anwendungen) auf dem entfernten Rechner auszuführen und Daten zwischen Computern zu kopieren. SSH ermöglicht eine weit sicherere Kommunikation als unverschlüsselte Protokolle, wie z. B. telnet oder ftp, bei denen die Daten und damit auch die Passwörter unverschlüsselt durch das Netz wandern. Die Programme ssh und scp ersetzen damit vollständig die Tools rlogin, rsh und rcp.

Im Moment existieren zwei unterschiedliche und nicht kompatible Versionen des SSH-Protokolls – SSH 1.X und SSH 2.X. Version 1.0 wurde 1995 vom Finnen Tatu Ylönen freigegeben und setzte sich schnell als Standard durch. Bis zur Version 1.2.12 war die Software frei nutzbar; danach änderten sich die Lizenzbedingungen [2]. OpenSSH [3] basiert auf der letzten freien Version und wird ständig weiter entwickelt und verbessert. Zunächst ein reines OpenBSD-Projekt, ist OpenSSH mittlerweile auch für andere Unix-Plattformen verfügbar und spricht seit Version 2.1.0 beide SSH-Protokolle 1.X und 2.X. OpenSSH benutzt die Krypto-Routinen von OpenSSL [5]. Die meisten Linux-Distributionen kommen standardmäßig mit OpenSSH:

huhn@asteroid:~$ ssh -V
OpenSSH_3.4p1 Debian 1:3.4p1-1, SSH protocols 1.5/2.0, OpenSSL 0x0090603f

Richtig verbunden

Zu SSH gehören auf der Client-Seite ssh/slogin als funktionaler Ersatz für telnet, rlogin oder rsh sowie scp zum Kopieren von Dateien (ersetzt ftp und rcp). Der Server ist der sshd (SSH-Daemon). Darüber hinaus gibt es Administrationswerkzeuge wie z. B. ssh-keygen (zum Erzeugen von Schlüsseln), ssh-agent (zur Verwaltung dieser Keys, Automatisierung und Vereinfachung des Logins), ssh-add (Registrierung neuer Schlüssel beim SSH-Agent) und make-ssh-known-hosts (Erstellung einer Liste mit bekannten öffentlichen Host-Keys einer Domain). ssh muss sowohl auf Ihrem eigenen Rechner wie auch auf der Gegenseite installiert sein; genauer: Um eine Verbindung von A nach B aufzubauen, muss auf Rechner A die Client-Software und auf B der Daemon installiert sowie letzterer auch aktiviert sein.

Um eine gesicherte Verbindung zu einem anderen Rechner aufzubauen, tippen Sie

huhn@asteroid:~$ ssh UserID@RemoteHost

oder

huhn@asteroid:~$ ssh -l UserID RemoteHost

wobei die Userid@ nur angegeben werden muss, wenn der Benutzername auf dem anderen System von dem Ihres eigenen Rechners abweicht. Beim Verbindungsaufbau (TCP-Verbindung, Port 22) tauschen Rechner A und B die jeweils verwendete Protokoll-Version aus. Ist diese nicht kompatibel, bricht die Verbindung zusammen:

Protocol major versions differ: 2 vs. 1

Mit den Optionen -1 oder -2 lässt sich aber problemlos auf die richtige Version umschalten. An den ssh-Aufruf darf direkt ein auszuführender Befehl angehängt werden. Diesen setzt man am besten in Anführungszeichen, damit die eigene Shell ihn nicht auswertet:

huhn@asteroid:~$ ssh plutarch "ls uni"
huhn@plutarch's password:
anglistik/   germanistik/

Auch Anwendungen, die die Bildschirmsteuerung selbst übernehmen, lassen sich remote starten. Dazu brauchen Sie allerdings einen zusätzlichen Parameter, um ein "Pseudo-Terminal" zu erschaffen. Mit der Option -t verschlüsselt SSH die Ausgabe des Terminals und zeigt sie im eigenen Fenster wieder entschlüsselt an:

huhn@asteroid:~$ ssh -t plutarch "mutt"

Um X-Anwendungen zu verschlüsseln und auf einem entferten Rechner zu starten, muss sowohl auf der Client- als auch auf der Server-Seite das X-Forwarding eingeschaltet sein. Die Konfigurationsdatei für den Server heißt sshd_config und findet sich im Verzeichnis /etc/ssh. Wie alle systemweiten Einstellungen darf sie nur vom Administrator root verändert werden. Der entsprechende Eintrag lautet

X11Forwarding yes

Die Konfigurationsdatei des SSH-Clients liegt im selben Verzeichnis und heißt ssh_config (ohne "d"). Bei den meisten Distributionen findet sich

#   ForwardX11 no

auskommentiert durch das Raute-Zeichen #. Um das Forwarding dauerhaft einzuschalten, setzen Sie (wiederum als root) die Zeile auf

ForwardX11 yes

Alternativ lässt sich dieses Feature durch den Einsatz der Option -X temporär aktivieren. Um eine X-Anwendung remote zu starten, loggen Sie sich entweder mit ssh [UserID@]RemoteHost oder ssh -X [UserID@]RemoteHost ein und starten diese dann auf der Kommandozeile:

huhn@asteroid:~$ mozilla &

Das Ampersand-Zeichen & stellt den Prozess dabei in den Hintergrund – das Terminal ist also wieder "frei", um weitere Befehle anzunehmen und/oder Anwendungen zu starten. Praktischerweise wird die Variable DISPLAY gleich beim X-Forwarding richtig gesetzt – die Verbindung ist also nicht nur sicher, sondern auch unkompliziert.

Sicher transportiert

Das zweite große Anwendungsgebiet von SSH neben dem geschützten Login ist der Dateitransfer: Hier ersetzt das Tool scp ("secure copy") die ungeschützten Dienste ftp ("file transfer protocol") und rcp ("remote copy"). Eine Datei per scp zu kopieren, ist fast so einfach wie das normale, lokale Kopieren mit cp; ein Beispiel-Aufruf sieht etwa so aus:

huhn@asteroid:~$ scp datei UserID@RemoteHost:

Stimmen die Benutzernamen überein, darf (wie beim ssh-Aufruf) UserID weggelassen werden. Soll die Datei nicht einfach ins Home-Verzeichnis kopiert werden, hängen Sie den Pfad einfach hinter den Doppelpunkt (scp datei UserID@RemoteHost:/tmp/archiv/).

Ganze Verzeichnisbäume rekursiv kopieren Sie mit dem Parameter -r; auch die von cp bekannte Option -p ("preserve"; Rechte und Besitzer/Gruppe erhalten) darf hier verwendet werden. Das ist natürlich nur sinnvoll, wenn User- und Group-IDs auf beiden Systemen identisch sind.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Zu Befehl
    Jedesmal, wenn Sie sich über telnet auf einem Rechner anmelden oder per ftp Daten von einem Computer zu einem anderen übertragen, wird das Passwort – wie alle anderen Daten auch – im Klartext gesendet. Damit kann jeder, der den Netzverkehr "abhört", Informationen und damit auch Zugang zum benutzten Account bekommen. Mit der Secure Shell (ssh) und den dazugehörenden Kommandos ssh für das Login und scp zur Dateiübertragung sind sie auf der sicheren Seite: Hier kommen verschlüsselnde Alternativen auf der Kommandozeile.
  • Aber sicher!
    Sicheres Arbeiten auf entfernten Rechnern und verschlüsselte Datenübertragung – das alles und noch viel mehr bietet SSH.
  • Zu Befehl: Suchen mit grep, egrep, fgrep, (b)zgrep
    Für die Suche nach Wörtern und Ausdrücken in Textdateien bieten sich die Kommandos der grep-Familie an. Als Ergebnis zeigen sie wahlweise die gefundenen Zeilen, die Namen der Dateien, in denen das Suchmuster vorkommt, oder die Anzahl der Treffer an.
  • Zu Befehl: pwd, cd, pushd, popd und dirs
    Die Wege im Verzeichnisdschungel sind unergründlich. Wie Sie auf dem rechten Pfad bleiben und welche Kommandos bei der Navigation helfen, zeigt diese "Zu Befehl"-Folge.
  • Zu Befehl: su, sudo
    Sicher ist sicher – selbst wer Root-Rechte auf dem System hat, sollte nur temporär als Administrator arbeiten, um nicht aus Versehen Schaden anzurichten. Mit su und sudo wechseln Sie auf der Kommandozeile schnell die Identität.
Kommentare

Infos zur Publikation

LU 01/2015: E-Books im Griff

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.