Linux SSH-Client

In die Linux Shell-Konsole integriert

Alle gängigen Linux-Distributionen verfügen über ein Konsolen-(Shell)-Programm sowie über ein mit der Shell bedienbares SSH Client-Programm. Es ist daher normalerweise möglich, auf jedem Linux-PC ohne weitere Vorbereitung ein SSH-Client-Programm zu starten.
SSH Konsolen-Fernsteuerung mit dem Secure Shell Protokoll
ssh Funktion und Download
Voraussetzungen SSH-Server, Verbing, Firewall, Zugangs-Rechte, ...
Anwendung Verbindung mit SSH, PC-Fernsteuerung
Grafik-Transport Übertragung von Desktop und Fenstern mit SSH
Datei-Transport
Übertragung von Dateien mit sFTP

ssh

Das Standard Linux Konsolen-Programm ssh arbeitet als SSH-Client.
Es befindet sich meist hier:
/usr/bin/ssh
Eine Konfiguration ist selten erforderlich:
/etc/ssh/ssh_config
Hilfe erhält man mit
$ man ssh
Ein SSH-Client ermöglicht die Fernsteuerung eines beliebigen entfernten PC über dessen Konsole.

Das Betriebssystem des PC spielt dabei keine Rolle, es muss dort jedoch ein SSH-Server-Programm laufen, z.B. → OpenSSH (Linux) oder → WinSSHD (Windows).
Jede Linux-Distribution enthält mindestens ein Konsolen-Programm. Starten sie es je nach System mit dem Standard Programm-Starter (Launcher). Der KDE-Desaktop verwendet als Konsole normalerweise das Programm konsole, der Gnome-Desktop terminal
Bessere Distributionen enthalten beide Programme.

Voraussetzungen

Voraussetzungen

Am entfernten PC (der gesteuert werden soll) muss ein SSH-Server laufen. Ausnahmsweise kann es sich dabei auch um den gleichen PC handeln, d.h. zum Test kann man Server und Client am gleichen PC verwenden.

Der entfernte SSH-Server muss im Netzwerk erreichbar sein.
Zum Test kann man u.a. das Konsolen-Programm ping verwenden, z.B.
$ ping -c3 192.168.0.123
(Setzen sie Name oder → IP-Adresse ihres SSH-Servers ein).

Alle beteiligten Firewalls (z.B. am Client-PC, am Server-PC, an einem dazwischen liegenden Router / Proxy-Server, ...) müssen den Transport von SSH Daten auf → Port 22 erlauben.
Im Zweifelsfall können sie kurzfristig die Internet-Verbindung trennen und alle Firewalls abschalten: Dann ist eine SSH-Verbindung fast immer möglich, wenn überhaupt eine Netzwerk-Verbindung zum Server besteht.

Sie verfügen über Zugangs-Rechte, d.h. Name und Passwort zur Anmeldung am Server-PC. Sie müssen dazu normalerweise am Server-PC als User registriert sein.
Unabhängig davon kann ein SSH-Server nur bestimmte User bzw. nur User aus einem begrenzten Adress-Bereich zulassen.

Anwendung

Verbindung

Öffnen sie ein Shell-Konsole und geben sie ein:
$ ssh ich@192.168.0.123
Ersetzen sie 'ich' durch ihren User-Namen und die Adresse durch jene des gewünschten SSH-Servers.
Der User-Name bezeichnet in diesem Fall ihren Namen am entfernten Server-PC und nicht jenen am lokalen Arbeits-PC.
Wenn sie keinen User-Namen angeben, dann wird jener Name verwendet, mit dem sie gerade am eigenen PC angemeldet sind.

Wenn die Internet-Verbindung funktioniert und der Firewall SSH zulässt, dann ist das ssh Programm auch für Server außerhalb des eigenen lokalen Netzwerks verwendbar.
In diesem Fall können sie alternativ den Domain-Namen des Servers verwenden, z.B.
$ ssh ich@demo.com
Wenn sie eine bestimmte Verbindung oft verwenden, dann können sie dafür ein Alias anlegen, z.B.
$ alias meinserver='ssh ich@demo.com'
welches wie ein Shell-Befehl zu verwenden ist:
$ meinserver

Anmeldung

Unmittelbar nach Verbindung müssen sie ihr Passwort (am entfernten Server) eingeben.
Achten sie besonders auf die korrekte Angabe von Groß- und Kleinbuchstaben.

Die meisten SSH-Server begrenzen die Zeit zur Anmeldung, typisch auf 15...60 Sekunden.

Anwendung

Nach erfolgreicher Anmeldung erhalten sie den Prompt des entfernten Servers.
Nun können sie an der Shell-Konsole alle Anweisungen eingeben, zu denen sie berechtigt sind.

Wenn sie mit einem → Windows SSH-Server verbinden, dann erscheint an ihrer Shell-Konsole der Windows-Prompt:
C:\>
ein für Linux-Gurus ungewohntes Bild...

X11-Anwendung

Der Linux-Desktop arbeitet normalerweise nach dem Client-Server-Prinzip. Das Desktop-Programm meldet sich dazu am X11-System des (eigenen oder fremden) PC an.
Das System funktioniert ähnlich wie ein Webserver, welcher nicht nur mehrere Clients versorgen kann, sondern auch unterschiedliche Client-Programme (Browser).

Durch die X11 Client-Server Architektur ist es möglich, dass sich beliebig viele User an einem Linux-PC anmelden, dass jeder von ihnen seinen eigenen Desktop erhält und dass man dabei zwischen verschiedenen Desktop-Programmen wählen kann.
Die Verwendung der Begriffe 'Server' und 'Client' werden leider für X11 manchmal umgekehrt verwendet. Das ist verwirrend, aber leider Tatsache. Um Verwechslungen zu vermeiden, werden hier die beiden Partner als 'steuerndes Gerät' und 'gesteuertes Gerät' bezeichnet.

Achten sie bei Artikeln zu diesem Thema darauf, wie 'Client' und 'Server jeweils interpretiert wird.

Grafik-Objekte

X11 verwendet Grafik-Objekte zur Darstellung von Fenstern. Alle Programm-Fenster und sogar der gesamte Desktop werden auf diese Weise an die X11-Server gesendet, welche die Objekte grafisch darstellen.

Es ist möglich, X11-Objekte mit SSH zu übertragen. Auf diese Weise kann man am eigenen Arbeits-PC die Fenster eines entfernten Linux-PC öffnen. Alle anderen zur gleichen Zeit am Linux-PC arbeitenden User werden dadurch nicht beeinflusst.

X11-Anwendung

Öffnen sie ein Linux Shell-Konsole und geben sie ein:
$ ssh -X ich@192.168.0.123
Ersetzen sie Name und Adresse durch die zutreffenden Daten. Der adressierte Server sollte in diesem Fall ein Linux-PC sein - Nur auf diesem kann man einen X11-Client erwarten.

Professionelle Hochleistungs-Server verzichten allerdings meist auf jeden Desktop und damit auch auf das X11-System. In diesem Fall ist natürlich keine X11-Verbindung möglich, man verwendet die 'normale' SSH Fernsteuerung der Shell-Konsole.

Die erfolgreich verbundene Konsole zeigt zunächst keine Unterschiede. Nun können sie jedoch grafische Fenster durch Angabe der Programm-Namen öffnen, z.B.
$ konqueror
$ nautilus
$ kwrite
Im eigenen lokalen Netzwerk funktioniert die Verbindung blitzschnell. Über das Internet müssen sie ein Weilchen warten.
Unterbrechnen sie das Konsolen-Programm nicht: Nach erfolgreicher Übertragung öffnet sich das Linux Programm-Fenster mit allen Bedienungs-Elementen.

Grafischer Desktop

Die Übertragung eines kompletten grafischen Desktop mit SSH ist wesentlich aufwändiger als jene einzelner Programm-Fenster.
Typische Internet-Verbindungen sind dafür meist zu langsam.
Ein Versuch ist sinnvoll, scheitert jedoch oft an diversen Zeit-Grenzen (Timeouts).

Auf Linux stehen mehrere Desktop-Programme zur Auswahl. Wählen sie zur Fernsteuerung nicht KDE oder Gnome (zu aufwändig), sondern z.B. XFCE, IceWM, TWM oder andere: Je einfacher, umso effizienter und schneller !

X11-Fernsteuerung

Auf diese Weise lässt sich jeder Linux-PC auch grafisch fernsteuern.
Allerdings muss der entfernte PC dazu konfiguriert sein. Man sucht in der Konfiguration eine Option, um 'Fernsteuerung' zu erlauben. Das ist meist schon ausreichend. Falls nicht, muss man sich mit den Details herumschlagen, typisch in diesen Verzeichnissen:
/etc/sysconfig/displaymanager
/etc/sysconfig/windowmanager
/etc/X11
/etc/ssh

Die mit SSH geöffneten Fenster sehen meist genauso aus wie jene ihres eigenen Linux Arbeits-PC. Das kann zu unangenehmen Verwechslungen führen.
Schließen sie daher die Fenster entfernter PC sofort nach Verwendung.
Auch auf Windows-PC lassen sich X11-Server (Xming, → Cygwin) installieren. Zusammen mit SSH ergibt das eine Möglichkeit, entfernte Linux-PC auch grafisch zu steuern. Diese Methode ist eine sichere und schnellere Alternative / Ergänzung zur Fernsteuerung mit → VNC, die zum Leidwesen vieler AnwenderInnen von den neuesten SuSE Linux-Distributionen kaum mehr unterstützt wird.

XHTML CSS