claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 11/2003

ssh und scp

Remote Control

von Elisabeth Bauer


Als "Turnschuh-Admins" bezeichnen viele Linuxer die Betreuer von Windows-Rechnern, weil diese bei fast allen Problemen vor Ort erscheinen müssen. Unter Linux halten Sie mit dem Kommando ssh die magische Fernsteuerung in der Hand, die außer CD-Wechseln fast alles kann.

Das Zimmer ist völlig leer, nur ein Computer-Lüfter surrt friedlich vor sich hin. Plötzlich dröhnt aus den Aktivboxen laute Punkmusik. Geister am Werk? Nein, nur ein Linux-Benutzer, der vom Nebenzimmer aus die digitale Stereoanlage aufgedreht hat.

Wer heute aus der Ferne auf ein Linux-System zugreift, nutzt üblicherweise die Secure Shell, die vom Login-Namen und Passwort bis hin zu Dateiinhalten alles verschlüsselt überträgt.

Das Kommando, um sich per Secure Shell mit einem fremden Rechner zu verbinden, hat die Form ssh user@host. user ist der Benutzername, den man auf dem Zweitrechner hat. Ist er identisch mit dem lokalen, kann man ihn mitsamt dem @-Zeichen auch einfach weglassen. Bei host trägt man den Domain-Namen oder die IP-Adresse ein. Um sich auf den Account eli auf einem Rechner im lokalen Netz einzuloggen, sieht der SSH-Aufruf beispielsweise folgendermaßen aus:

ssh eli@192.168.1.13

oder, wenn der Rechnername bekannt ist (siehe Kasten "Hallo du da")

ssh eli@daidalos

Bei der ersten Kontaktaufnahme mit einem Rechner warnt SSH Sie davor, dass die Authentizität des jeweiligen Hosts nicht gesichert sei, und fragt, ob Sie trotzdem weitermachen wollen (siehe Abbildung 1). Geben Sie yes ein und drücken Sie [Eingabe].

Abb. 1: Erste Kontaktaufnahme per SSH mit einem fremden System.

Die Secure Shell speichert nun als Sicherheitsmaßnahme in der Datei ~/.ssh/known_hosts ("Bekannte Hosts") einen Fingerabdruck für das fremde System. Bei zukünftigen Verbindungen prüft SSH, ob der Fingerabdruck noch stimmt, und schlägt Alarm, wenn Fingerabdruck und System nicht mehr zusammenpassen (siehe Abbildung 2) -- dies kann ein Anzeichen dafür sein, dass Ihnen jemand mit üblen Absichten Rechner X für Rechner Y unterjubeln will, aber auch ganz harmlose Ursachen haben wie ein neu installiertes Betriebssystem -- in diesem Fall löschen Sie mit einem Text-Editor den Eintrag des betreffenden Rechners in known_hosts.

Abb. 2: Wenn sich der Fingerabdruck der "Gegenstelle" geändert hat, streikt SSH aus Sicherheitsgründen.

Als nächstes müssen Sie Ihr Passwort für den anderen Rechner eingeben. Ist das geglückt, sind Sie "drin" -- sehen kann man das am veränderten Shell-Prompt: In unserem Beispiel steht hier nun nicht mehr daidalos, der Name des lokalen Systems, sondern eli@localhost, Standard-Prompt eines namenlosen Red-Hat-Systems.

Per SSH können Sie nun im Prinzip alles machen, was Sie sonst direkt an diesem Rechner tun -- lediglich das Wechseln von CDs bereitet SSH Schwierigkeiten. Rufen Sie probehalber einige Befehle wie ls und cd auf -- über SSH arbeiten Sie genauso wie in der lokalen Shell.

Fremde Fenster

Auch wer den MP3-Player xmms vom Nebenraum aus fernsteuern will, ist mit SSH gut bedient: Dank des sogenannten X11-Forwarding lassen sich über ssh auch Programme mit einer grafischen Benutzeroberfläche wie OpenOffice, Gimp oder Mozilla starten. Unter Red Hat Linux klappt das auf Anhieb, unter SuSE Linux ist eine kleine Vorarbeit auf dem Rechner, von dem aus Sie auf den anderen zugreifen wollen, vonnöten.

Kopieren Sie mit folgendem Befehl die globale Konfigurationsdatei in Ihr persönliches .ssh-Verzeichnis:

cp /etc/ssh/ssh_config ~/.ssh/config

Anschließend fügen Sie dort unterhalb der Zeile

# ForwardX11 no

ein:

ForwardX11 yes

Damit erlauben Sie die von SuSE Linux standardmäßig deaktivierte X11-Weiterleitung für genau einen Benutzer -- Sie selbst. Damit der SSH-Dienst auf der Gegenseite die Grafik auch korrekt weiterleitet, muss dort in der Datei /etc/ssh/sshd_config die Option X11Forwarding yes gesetzt, also nicht mit einer Raute als Kommentarzeichen versehen sein. Sowohl SuSE als auch Red Hat Linux haben diese Option gesetzt, bei anderen Linux-Distributionen müssen Sie das eventuell händisch nachtragen.

Die Eingabe von xmms & startet nun den MP3-Player. Die Auswahl der Musikstücke beschränkt sich logischerweise auf das, was der fremde Rechner bietet, schließlich wird nur die grafische Oberfläche übertragen, das Programm selbst läuft remote. Wer das gerade gehörte Stück auf den zweiten Rechner kopieren will, braucht nicht ssh, sondern dessen Bruder scp.

Sicheres Kopieren mit scp

Der Datei-Transfer per FTP ist bequem, aber auch unsicher, da das im Klartext geschickte Passwort auf seinem Weg zum Zielrechner abgehört werden kann. Wem diese Befürchtung akademisch erscheint, der braucht nur einmal sein Notebook auf einem Hackerkongress ins dortige Netz einzuklinken und einen unverschlüsselten Login zu wagen: Innerhalb weniger Minuten kann man sich dann über "Besuch" freuen.

Auf einem System mit schützenswerten privaten Daten ist deshalb scp, "Secure Copy" das Kommando der Wahl, um Dateien zu transportieren.

Das verschlüsselte Kopieren klappt mit Konqueror sogar grafisch (siehe Artikel S. ##), aber auch die Shell errichtet keine größeren Hürden. Um eine Datei von einem anderen Rechner ins aktuelle Verzeichnis zu schaufeln, geben Sie wie bei einer SSH-Verbindung Benutzernamen und IP-Adresse oder Domain-Namen an und -- davon getrennt mit einem Doppelpunkt -- den Namen der Datei. Dabei verwenden Sie entweder den vollen Pfad, ausgehend von / an, oder aber ohne / den Pfad von Ihrem dortigen Home-Verzeichnis aus.

scp eli@192.168.1.183:djini.tgz .

bedeutet das gleiche wie

scp eli@192.168.1.183:/home/eli/djini.tgz .

Der Punkt weist scp an, die Datei unter dem gleichen Namen ins aktuelle Verzeichnis zu speichern. Umbenennen und anderswo speichern lässt sie sich natürlich auch:

scp eli@192.168.1.183:djini.tgz web/blubb.tgz

Das Kopieren in die andere Richtung geht ähnlich:

scp datei user@adresse:

kopiert datei aus dem aktuellen Verzeichnis ins Home-Verzeichnis von user auf dem entfernten System. Wichtig ist hier, den Doppelpunkt nicht zu vergessen -- sonst interpretiert scp den Befehl als normalen, lokalen Kopiervorgang und legt eine Kopie der Datei unter dem Namen user@adresse an.

Wie viele Shell-Befehle versteht auch scp die Option -r für rekursives Kopieren:

scp -r ordner ziel:
scp -r ursprung:ordner .

Damit kopieren Sie einen ganzen Ordner in einem Rutsch. (eba)

Sicherheit

Bei Server-Diensten wie dem SSH-Daemon heißt es aufpassen -- besonders wenn sie übers Internet erreichbar und nicht durch eine Firewall aufs lokale Netz beschränkt sind. Kurz vor Drucklegung dieses Heftes wurde ein Sicherheitsproblem bei OpenSSH bekannt. Wie auch die anderen Linux-Distributoren, stellten Red Hat und SuSE innerhalb kürzester Zeit Patches parat, die Sie auf jeden Fall einspielen sollten. Dies geht bei SuSE Linux über das YaST Online Update und bei Red Hat über das Red Hat Update Center. Alternativ ziehen Sie die RPM-Pakete aus dem Netz und spielen sie mit rpm -Fvh paketname manuell ein. Die passenden Download-URLs und nähere Beschreibungen finden Sie auf den folgenden Seiten:

Hallo du da -- Namensvergabe im Heimnetz

Im Internet und in großen Firmennetzen sorgt ein Dienst namens DNS (Domain Name Service) dafür, dass Domain-Namen wie easylinux.de automatisch zur richtigen Adresse -- der IP-Adresse -- aufgelöst werden.

Wer im kleinen Heimnetz seine Rechner auch mit Namen ansprechen will, braucht dazu jedoch keinen eigenen DNS-Server, sondern nur einen Text-Editor.

Öffnen Sie mit [Alt-F2] den Schnellstartdialog und geben dort kdesu kwrite /etc/hosts ein, alternativ loggen Sie sich mit dem Kommando su als root in der Shell ein und starten mit dem Befehl vi /etc/hosts den Text-Editor vi mit der Datei hosts im systemweiten Konfigurationsverzeichnis /etc.

In der Hosts-Datei fügen Sie unter die vorhandenen Zeilen die IP-Adressen der Rechner in Ihrem lokalen Netz ein und dahinter jeweils den Namen, mit dem Sie den Rechner ansprechen wollen. Die Datei könnte beispielsweise folgendermaßen aussehen (asterix ist der lokale Rechner):

127.0.0.1       asterix         localhost
192.168.1.2     obelix
192.168.1.3     idefix
192.168.1.4     troubadix

Achten Sie darauf, keine Umlaute und Sonderzeichen zu verwenden. Speichern Sie die Datei und schließen Sie den Text-Editor. In Zukunft reicht es, wenn Ihr Benutzername auf beiden Systemen der gleiche ist, für die Verbindung beispielsweise ssh idefix einzugeben.

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-01-25 16:32

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]