ssh-Möglichkeiten

- ssh-Tunnelungen mit Beispielen für Linux und (Windows)

- ssh mit dem Handy

Allgemein gilt: Der Remote-Dienst darf nicht auf einen lokalen Port getunnelt werden, der von einem lokalen Dienst genutzt wird (Linux gibt eine Warnmeldung bei Tunnelung auf einen privilegierten Port aus) !

Spezielle Gegebenheiten in den Beispielen:
192.168.1.1 ist die lokale IP des Schulserver, dessen Dienste getunnelt werden sollen.
Der lokale Nutzername steht auch auf dem Remotehost zur Verfügung. Sonst wird die Verbindung mit einem vorhandenem Account auf dem Remote-host in der Form ssh -l <Username auf Remotehost> durchgeführt.
Je nach ssh-Protokoll (1 oder 2) muss möglicherweise der Parameter -1 oder -2 eingefügt werden: ssh -2 ....

Jedes Gerät, das einen TCP-Dienst im LAN anbietet, ist bei einer ssh-Verbindung zum Server erreichbar!
(Der Server muss auf IP-forwarding eingestellt sein)
Jeder, der einen ssh-account auf dem Server hat, kann sich bei Kenntnis der IP des Internetinterfaces im Netz frei bewegen!


Squid tunneln /über remote-Proxie surfen:
Beispielsweise zur Überprüfung von Proxiefilterlisten

lokale Browser-Proxy-Einstellung: http-Proxy: 127.0.0.1 Port 14000

local-pc:~ # ssh -L 14000:192.168.1.1:3128 80.130.56.230

Syntax: ssh -L <port auf lokalem Rechner>:<lokale IP Rechner im Schul-LAN>:<Port des Dienstes auf Rechner im Schul-LAN> <öffentl. IP des Verbindungsrechners oder Name des Rechners>

Im obigen Beispiel wird der Proxy Squid (Port 3128) des Schulservers (192.168.1.1) auf den lokalen Port 14000 getunnelt.


WEB-Server tunneln:

lokale Browser-Proxy-Einstellung: http-Proxy: 127.0.0.1 Port 14000

Mit ssh -L 14000:192.168.1.1:80 64.130.56.230
und url-Eingabe von „localhost“ im lokalen Browser hat man die index.html des Schulservers zu Hause.


NMAP (Port 3000) tunneln (Webmin sollte analog mit Port 10000 statt 3000 laufen):

ssh -L 3000:192.168.1.1:3000 80.130.56.230
Im Browser keinen Proxy angeben, sondern nur als url „localhost:3000“ eingeben.


X-Session tunneln
In der sshd.conf des remote-Rechners muss „X11Forwarding yes“ gesetzt sein.

ssh -X <ip des Remoterechners>

Nun kann auf dem remote-Host ein X11-Programm gestartet werden und wird auf dem lokalen Bildschirm angezeigt. Voraussetzung ist hier auf dem lokalen Rechner eine Xwindow-Sitzung ( unter Windows einen Xwindow-Server installieren. Dieser wird automatisch durch das remote-Programm gestartet). Zum Test eignet sich gut „xeyes“.


Dateitransfer mit scp oder sftp (unter Windows mit winscp)

Mit scp (securcopy) und sftp können Dateien zwischen zwischen lokalem Rechner und Remotehost über den ssh-Port 22 kopiert werden. Durch den Zusatzparameter -r ist der rekursive Dateitransfer eines Verzeichnisses möglich.

Upload:
scp /usr/local/dir.txt <remotehost>:/usr/fileserv/software/

Download:
scp <remotehost>:/usr/fileserv/software/dir.text /usr/local/

sftp bietet dieselben Möglichkeiten wie das normale FTP und ist scp bei Unkenntnis der Dateinamen auf dem Remoterechner vorzuziehen.

scp und sftp gehören zum OpenSSH-Paket.

Mit dem FTP-Programm Kbear (Linux) lassen sich gesicherte sftp-Verbindungen wie mit einem normalen FTP-Client ausführen


Webinterface tunneln

Habe ein Switch/Netzwerkdrucker im (remote-)Netz die IP 192.168.1.50 und ist über ein WEBinterface (port 80) konfigurierbar.
Mit

ssh -L 14000:192.168.1.50:80 <dyn.IP des Internetinterface>
in Server einloggen und im Browser
http://localhost:14000 (ohne Proxybenutzung) eingeben. Das (remote-)Webinterface ist nun im lokalen Browser zu sehen und zu bedienen.


VNC-Verbindung tunneln

ssh -C -L 5900:192.168.1.180:5900 80.130.56.230
VNC läuft auf Port 5900. 192.168.1.180 ist die IP eines Windowsrechners im LAN auf dem ein VNC-Server läuft. Der Parameter -C dient zur Kompression der getunnelten Verbindung und erlaubt ein zügiges Arbeiten.

Achtung: Läuft auf dem lokalen Rechner (localhost) ebenfalls ein VNCServer auf Port 5900, so tunnelt man den Remote-VNCServer einfach auf Port 5901 und stellt den VNCViewer auf Display:1 für den Remote-VNCServer ein.

Mit vncviewer localhost wird der Desktop des Rechners im SchulLAN lokal in einem Fenster angezeigt.


VNC-Verbindung auf Linux-Terminalserver (oder Server mit installiertem GUI)

Auf dem lokalen Rechner einen ssh-Tunnel für Port 5901 (bei Display=1) schaffen
ssh -C (-l <user>) -L 5901:<lokale IP-Terminalserver>:5901 80.130.56.230

Nach dem Einloggen den vncserver starten und auf die Meldung der Display-Angabe achten ( server:1) bedeutet, dass der vncserver auf Port 5901 läuft.

lworch@rs-kropp:~> vncserver
New 'X' desktop is rs-kropp:1
Starting applications specified in /home/lworch/.vnc/xstartup
Log file is /home/lworch/.vnc/rs-kropp:1.log

und anschließend auf anderer Konsole des lokalen Rechners
vncviewer localhost:1
eingeben.

Nun sollte ein Fenster aufpoppen, indem sich ein xterm-Terminal befindet (default-Fenstermanager des VNC-Servers ist twm).
Der vncserver wird zum Ende der Sitzung mit
vncserver -kill :1 gekillt

Wird KDE als Oberfläche gewünscht, so ist in ~/.vnc/xstartup twm durch kde zu ersetzen.


Browserbedienung einer X-Session auf Linuxserver mit installierter grafischer Benutzeroberfläche

VNC-Verbindung wie bei „VNC-Verbindung auf Linux-Terminalserver“.
Der VNC-Server muss allerdings gleichzeitig einen WEB-Server starten. Dies geschieht mit:

lworch@rs-kropp:~> vncserver -httpd "/usr/share/vnc/classes" (oder wo sonst die vnc-Java-classes liegen)

Dann muss zusätzlich zu 5901 ein zweiter Tunnel auf Port 5801 für den Browser geöffnet werden, auf dem das VNC-WEB-Interface „hört“:
ssh -C -L 5801:<lokale IP des Servers>:5801 80.130.56.230
Im Browser ist die url „http://localhost:5801“
einzugeben.







Hier ein Beispiel für putty unter Windows:

Die oben genannten Beispiele für Linux lassen sich entsprechend auch mit putty realisieren.





Hier soll NTOP des Schulservers (Port 3000) über ssh getunnelt werden. (Gleiches muss für Webmin für Port 10000 gelten).

Die dynamische IP im Internet des Schulservers ist 217.226.85.108







Unter „SSH Tunnels“ werden folgende Einträge vorgenommen.

192.168.1.1 ist die lokale IP des Schulservers im Intranet der Schule
Port 3000 ist der NTOP-Port auf dem Schulserver.
Der Port 3000 des Schulservers soll als lokaler Port 3000 auf den heimischen Rechner „geforwardet“ werden
.









Durch Klick auf Add werden die Einträge übernommen.



Nach Öffnen der ssh-Verbindung mit putty steht die getunnelte Verbindung zur Verfügung.

Im lokalen Browser (keine Proxybenutzung), d.h. „direkte Verbindung mit dem Internet“) kann nun mit der url „localhost:3000“ NTOP eingesehen werden.






siehe auch: http://sbarth.dyndns.org/arktur/seiten/ssh-vnc.html

Programme unter http://www.heise.de/ct/03/10/links/108.shtml


ssh mit dem Handy/Mobilphone

Es wird hier nicht diskutiert, ob ein Handy als Terminal sinnvoll ist. ;-)

Das Handy muss javafähig sein. Dies ist bei heutigen Handys meist der Fall.
Der ssh-client Midpssh wird von
http://www.xk72.com/midpssh/download.html (WAP-url: http://xk72.com/wap ) auf das Handy geladen und installiert.

In den folgenden Erläuterungen beziehe ich mich auf das Vodafone-Netz und das Handy Siemens CX65V. Andere Konstellationen sind auch möglich, jedoch von mir nicht überprüft.

Hilfen für Midpssh unter:
http://www.xk72.com/midpssh/faq.html und http://www.xk72.com/phpBB2/







Der letzte Kick:

Mit Lynx vom eingeloggten Rechner aus surfen:

=;->