Linux als SOHO-Server
für Linux- und Windows-Clients |
Kapitel:
|
Im Folgenden werden einige praktische Beispiel zur elementaren Nutzung von
SSH gegeben. Voraussetzung für die aufgeführten Beispiele ist ein laufender
SSH-Dämon auf dem Server, auf dem lokalen Rechner muss lediglich der SSH-Client
installiert sein. Ob mit- oder ohne Passwort bzw. Passphrase zur
Authentifizierung gearbeitet wird, spielt bei den folgenden Beispielen keine Rolle. Remote-VerbindungDie elementarste Verwendung von SSH ist ein Aufbau einer Remote-Verbindung, es kann so die Funktionalität von 'telnet' bzw. 'rlogin' ersetzt werden. Zur Remote-Verbindung hier zwei Beispiele:
In beiden Beispielen wird eine Verbindung auf dem Rechner: 'merlin'
als Benutzer 'linux' erzielt. Während
in der ersten Zeile dieses vom Benutzer: 'linux'
aus durchgeführt wird, wird es in der zweiten Zeile, dieses durch den Benutzer: 'norbert',
beide auf dem Rechner: 'experimental'
erreicht. Kopieren von DateienDas scp-Kommando erlaubt das Kopieren von Dateien von- oder zu einen entfernten Rechner, ähnlich dem des cp-Kommandos oder rcp-Kommandos. Hierzu ein zwei Beispiele:
Im der ersten Zeile kopiert der Benutzer: 'linux'
auf dem Rechner: 'experimental' die
Datei: 'test' auf dem Rechner: 'merlin'
mit neuen Namen: 'test_from_merlin'.
Das Zeichen ':' trennt den Hostnamen
vom Dateinamen. Im der zweiten Zeile geschieht das Gleiche, jedoch kopiert dieses mal
der Benutzer: 'norbert', auf dem
Rechner: 'experimental'. Weiterhin kann zum Kopieren von Daten SFTP (Secure File Transfer Program) genutzt werden. Im Unterschied zu Programm: 'scp' ist 'sftp' interaktiv, d.h. mehrere Befehle können innerhalb einer Sitzung (Session) durchgeführt werden. Die Befehle sind analog zu denen von FTP. Hierzu eine Beispiel-Sitzung:
Der Benutzer: 'norbert' loggt sich auf dem Rechner: 'merlin' als Benutzer: 'linux' ein. Nach der Eröffnung der Session wird in das Verzeichnis: 'public_html' gewechselt und die Datei: 'index.htm' herunter geladen, anschließend wird 'test.htm' herauf geladen. Mit 'exit' wird die Session geschlossen. Ausführen von KommandosAuch das Ausführen von Kommandos auf einen entfernten Rechner kann mittels SSH geschehen. Der Befehl: 'ssh' ist in diesem Fall analog zu 'rsh' zu sehen. Wie bei 'rsh' wird die Standardeingabe zum entfernten Rechner hin übergeben. Die Standardausgabe und Fehlerroutinen werden an den aufrufenden Rechner zurückgesandt. Hierzu zwei Beispiele:
In der ersten Beispielzeile führt der Benutzer: 'linux'
auf dem Rechner: 'experimental' das
Shell-Script: 'test.sh' auf dem
entfernten Rechner 'merlin' aus. Tunnel mit SSH SSH kann noch mehr, als nur sichere Verbindungen zu entfernten Rechnern
aufbauen. Mittels SSH können auch fast beliebige andere Protokolle abgesichert
werden, z.B. dass als unsicher geltende pop3-Protokoll
zum Senden von Mails. Durch 'Port Forwarding' können Ports durch eine sichere SSH-Verbindung umgeleitet werden. Dabei tritt SSH ähnlich wie ein Proxy auf, der
auf der einen Seite des SSH-Kanals die Verbindung entgegennimmt und sie auf der
anderen Seite mit dem jeweiligen Server verbindet. Local Port ForwardingBei 'Local Port Forwarding' wird eine Verbindung, die auf einem lokalen Client-Port eintrifft, durch den sicheren SSH-Kanal auf einen Port auf einem entfernten Server weiter geleitet. Dieses Verfahren wird daher auch als ausgehender Tunnel bezeichnet. Der Syntax für: 'Local Port Forwarding' sieht wie folgt aus:
Im Folgenden, ein Beispiel wie eine unsichere Telnet-Verbindung über Standard-Port: '23', über eine gesicherte SSH-Verbindung getunnelt werden kann. Dabei wird angenommen, dass sich ein Telnet-Server auf dem Rechner: 'merlin' befindet, und der Rechner: 'experimental' die sichere SSH-Verbindung aufbaut, und anschließend den Telnet-Client aufruft.
Das Kommando baut eine sichere SSH-Verbindung als Benutzer: 'linux' zum Rechner:' merlin' auf. Weiterhin werden alle Anfragen, die auf den lokalen Port: '4711' von 'experimental' eintreffen, auf den entfernten Rechner: 'merlin' an den Port: '23' weitergeleitet. Die Kommunikation läuft dabei über die zuvor aufgebaute SSH-Verbindung, es wird halt getunnelt.
Wird nun, z.B. von einer anderen Konsole aus, eine Telnet-Anfrage zum Port: '4711'
des eigenen Rechners ('localhost')
eingeleitet, so gelangt die Verbindung über den SSH-Tunnel zum Rechner: 'merlin'
Port: '23'. Remote Port ForwardingDas 'Remote Port Forwarding' funktioniert genau anders herum als 'Local Port Forwarding'. Die Verbindung kommt an einem Port auf dem Host an, auf dem der SSH-Server läuft. Das 'Forwarding' leitet die Daten dann durch den SSH-Kanal weiter zur Client-Seite und dort an einen beliebigen Port. Dieses Verfahren wird daher auch als eingehender Tunnel bezeichnet. Der Syntax für: 'Remote Port Forwarding' sieht wie folgt aus:
Voraussetzung beim Tunneln ist, beide Seiten müssen SSH können, weiterhin sollten beim 'Forwarding' ein unbenutzter High-Port, z.B.: '12345' gewählt werden. AnmerkungenAnstatt des Schalters '-l', zum Spezifizieren des 'remote user name', kann auch der @-Syntax genutzt werden. Für das Kommandos 'ssh' sieht der Aufruf dann wie folgt aus:
Weitere Infos
letzte Änderung: 01. November 2006 |
Copyright © 2004 Norbert Eusterholz |