Home / LinuxUser / 2003 / 07 / Zu Befehl: ssh, scp

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

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.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

2933 Hits
Wertung: 144 Punkte (10 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...