SSH zum Tunneln von VNC nutzen: Unterschied zwischen den Versionen
(→SSH vorbereiten) |
(→VNC über SSH-Tunnel nutzen) |
||
(4 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
==SSH vorbereiten== | ==SSH vorbereiten== | ||
− | SSH ist unter Linuxsystemen ein Dienst, der meist defaultmäßig gestartet wird. Daher gehe ich davon aus, dass auf einem Linuxsystem sowohl der Server, als auch der Client laufen und einsatzbereit sind. Unter Windows sieht das leider etwas anders aus. Will man einen Windows (NT)-Rechner als SSH-Server einsetzen, muss man sich mit Cygwin erst mal eine UNIX-Umgebung mitsamt den wunderbaren Tools einrichten. Bei der Installation von Cygwin muss man nur darauf achten, dass man OpenSSH mitinstalliert. Hat man die Installation erst mal geschafft, muss man den SSH-Dienst starten, so dass er in Zukunft beim Booten mitgestartet wird. | + | SSH ist unter Linuxsystemen ein Dienst, der meist defaultmäßig gestartet wird. Daher gehe ich davon aus, dass auf einem Linuxsystem sowohl der Server, als auch der Client laufen und einsatzbereit sind. Unter Windows sieht das leider etwas anders aus. Will man einen Windows (NT)-Rechner als SSH-Server einsetzen, muss man sich mit Cygwin erst mal eine UNIX-Umgebung mitsamt den wunderbaren Tools einrichten. Bei der Installation von Cygwin muss man nur darauf achten, dass man OpenSSH und evtl. Pine (für den Editor Pico) mitinstalliert. Hat man die Installation erst mal geschafft, muss man den SSH-Dienst starten, so dass er in Zukunft beim Booten mitgestartet wird. |
+ | Um die Sicherheit der SSH-Verbindung etwas zu erhöhen, kann man den Zugriff auf das System auf einzelne Benutzer (mit evtl. eingeschränkten Benutzerrechten) beschränken. Soll das ein zusätzlicher Benutzeraccount sein, so sollte man diesen '''vor''' der Konfiguration des SSH-Dienstes anlegen und zum Einrichten der Verzeichnisstrukturen einmal anmelden. | ||
− | + | Nun kann man die Cygwin-Console starten, ins Verzeichnis /etc wechseln und dort | |
ssh-host-config | ssh-host-config | ||
− | ausführen. Anschließend | + | ausführen. Die folgenden Fragen mit '''yes''' bzw. beim Default-Wert für CYGWIN= mit Return beantworten. Anschließend muss man, wenn man den Zugriff auf bestimmte User einschränken möchte, die Datei '''/etc/sshd_config''' editieren. Diese Datei muss man aber vorher dem aktuellen Administratoraccount zuordnen, da der sie sonst nicht editieren darf. Dazu gibt man z.B. |
+ | chown ADMINISTRATOR /etc/sshd_config | ||
+ | ein. (ADMINISTRATOR muss durch den Administrator-Kontonamen ersetzt werden). | ||
+ | |||
+ | Hat man '''pico''' mitinstalliert, kann man nun | ||
+ | pico /etc/sshd_config | ||
+ | zum bearbeiten der Datei eingeben. Unter der Zeile '''# Authentication:''' trägt man nun folgende Zeile ein: | ||
+ | AllowUsers ALLOWED1 ALLOWED2 | ||
+ | ein. (ALLOWED1 bzw. ALLOWED2 muss durch die Kontonamen der zu erlaubenden Benutzer ersetzt werden. Es können beliebig viele Kontonamen, durch Leerzeichen getrennt, angefügt werden.) | ||
+ | |||
+ | Jetzt kann man den Besitzer der Datei sshd_config wieder auf '''SYSTEM''' zurückändern: | ||
+ | chown SYSTEM /etc/sshd_config | ||
+ | |||
+ | Zuletzt muss man den Dienst nur noch starten: | ||
net start sshd (bzw. cygrunsrv -S sshd) | net start sshd (bzw. cygrunsrv -S sshd) | ||
− | |||
+ | ==Probleme mit dem Dienst== | ||
Bei Problemen mit dem Dienst kann man | Bei Problemen mit dem Dienst kann man | ||
cygrunsrv -E sshd | cygrunsrv -E sshd | ||
cygrunsrv -R sshd | cygrunsrv -R sshd | ||
− | zum Entfernen des Dienstes eingeben. Anschließend kann man mit | + | zum Entfernen des Dienstes eingeben. Oder (mit Gewalt) im Task-Manager '''Prozesse aller Benutzer anzeigen''' aktivieren und den Prozess cygrunsrv.exe beenden. |
+ | |||
+ | Anschließend kann man mit | ||
ssh-host-config | ssh-host-config | ||
die Konfiguration und Einrichtung des Dienstes neu starten und mit | die Konfiguration und Einrichtung des Dienstes neu starten und mit | ||
Zeile 26: | Zeile 42: | ||
ssh user@server -L 5901:localhost:5900 -L 5902:192.168.0.2:5900 -L 5903:192.168.0.3:5900 | ssh user@server -L 5901:localhost:5900 -L 5902:192.168.0.2:5900 -L 5903:192.168.0.3:5900 | ||
kann man mehrere Rechner im Zielnetzwerk erreichen. Dabei werden Anfragen am Port 5902 an den Rechner 192.168.0.2 im Zielnetzwerk geleitet. So kann man über eine einzige SSH-Verbindung zu einem PC im Zielnetzwerk weitere PCs darin angesprechen und per VNC verwalten. | kann man mehrere Rechner im Zielnetzwerk erreichen. Dabei werden Anfragen am Port 5902 an den Rechner 192.168.0.2 im Zielnetzwerk geleitet. So kann man über eine einzige SSH-Verbindung zu einem PC im Zielnetzwerk weitere PCs darin angesprechen und per VNC verwalten. | ||
+ | |||
+ | ==Problem: Connection reset by peer== | ||
+ | Leider erwartet die SSH - Verbindung in der '''Konsole''' Useraktionen. Da VNC ja keine Daten in der Konsole überträgt, wird die SSH-Verbindung aufgrund fehlender Useraktionen sicherheitshalber geschlossen. Nun ist es aber recht hinderlich, nach ca. 5 Minuten |
Aktuelle Version vom 24. Januar 2006, 12:53 Uhr
Inhaltsverzeichnis |
SSH vorbereiten
SSH ist unter Linuxsystemen ein Dienst, der meist defaultmäßig gestartet wird. Daher gehe ich davon aus, dass auf einem Linuxsystem sowohl der Server, als auch der Client laufen und einsatzbereit sind. Unter Windows sieht das leider etwas anders aus. Will man einen Windows (NT)-Rechner als SSH-Server einsetzen, muss man sich mit Cygwin erst mal eine UNIX-Umgebung mitsamt den wunderbaren Tools einrichten. Bei der Installation von Cygwin muss man nur darauf achten, dass man OpenSSH und evtl. Pine (für den Editor Pico) mitinstalliert. Hat man die Installation erst mal geschafft, muss man den SSH-Dienst starten, so dass er in Zukunft beim Booten mitgestartet wird. Um die Sicherheit der SSH-Verbindung etwas zu erhöhen, kann man den Zugriff auf das System auf einzelne Benutzer (mit evtl. eingeschränkten Benutzerrechten) beschränken. Soll das ein zusätzlicher Benutzeraccount sein, so sollte man diesen vor der Konfiguration des SSH-Dienstes anlegen und zum Einrichten der Verzeichnisstrukturen einmal anmelden.
Nun kann man die Cygwin-Console starten, ins Verzeichnis /etc wechseln und dort
ssh-host-config
ausführen. Die folgenden Fragen mit yes bzw. beim Default-Wert für CYGWIN= mit Return beantworten. Anschließend muss man, wenn man den Zugriff auf bestimmte User einschränken möchte, die Datei /etc/sshd_config editieren. Diese Datei muss man aber vorher dem aktuellen Administratoraccount zuordnen, da der sie sonst nicht editieren darf. Dazu gibt man z.B.
chown ADMINISTRATOR /etc/sshd_config
ein. (ADMINISTRATOR muss durch den Administrator-Kontonamen ersetzt werden).
Hat man pico mitinstalliert, kann man nun
pico /etc/sshd_config
zum bearbeiten der Datei eingeben. Unter der Zeile # Authentication: trägt man nun folgende Zeile ein:
AllowUsers ALLOWED1 ALLOWED2
ein. (ALLOWED1 bzw. ALLOWED2 muss durch die Kontonamen der zu erlaubenden Benutzer ersetzt werden. Es können beliebig viele Kontonamen, durch Leerzeichen getrennt, angefügt werden.)
Jetzt kann man den Besitzer der Datei sshd_config wieder auf SYSTEM zurückändern:
chown SYSTEM /etc/sshd_config
Zuletzt muss man den Dienst nur noch starten:
net start sshd (bzw. cygrunsrv -S sshd)
Probleme mit dem Dienst
Bei Problemen mit dem Dienst kann man
cygrunsrv -E sshd cygrunsrv -R sshd
zum Entfernen des Dienstes eingeben. Oder (mit Gewalt) im Task-Manager Prozesse aller Benutzer anzeigen aktivieren und den Prozess cygrunsrv.exe beenden.
Anschließend kann man mit
ssh-host-config
die Konfiguration und Einrichtung des Dienstes neu starten und mit
net start sshd (bzw. cygrunsrv -S sshd)
den Dienst neu starten.
VNC über SSH-Tunnel nutzen
Damit man von einem Client den Server über SSH-Tunnel per VNC bedienen kann muss man folgenden Befehl auf dem Client eingeben:
ssh user@server -L 5901:localhost:5900
Anschließend kann man den VNCviewer mit localhost und der Bildschirmnummer 1 starten, um auf den Server zuzugreifen. Das Kommando oben bedeutet, dass man sich per ssh mit dem user (muss auf dem Server existieren) am server (IP-Adresse, oder Rechnername) einloggt. Man wird nach dem Passowort des Useraccounts gefragt. Das -L leitet eine lokale Portanfrage am Port 5901 über die SSH-Verbindung an den Hostrechner, in diesem Fall localhost (also der Server selbst) an den Port 5900. Mit
ssh user@server -L 5901:localhost:5900 -L 5902:192.168.0.2:5900 -L 5903:192.168.0.3:5900
kann man mehrere Rechner im Zielnetzwerk erreichen. Dabei werden Anfragen am Port 5902 an den Rechner 192.168.0.2 im Zielnetzwerk geleitet. So kann man über eine einzige SSH-Verbindung zu einem PC im Zielnetzwerk weitere PCs darin angesprechen und per VNC verwalten.
Problem: Connection reset by peer
Leider erwartet die SSH - Verbindung in der Konsole Useraktionen. Da VNC ja keine Daten in der Konsole überträgt, wird die SSH-Verbindung aufgrund fehlender Useraktionen sicherheitshalber geschlossen. Nun ist es aber recht hinderlich, nach ca. 5 Minuten