Open Source alternative zu Teamviewer oder Netviewer
In diesem Artikel bauen wir eine fertige .exe Datei zum einfachen Verbinden eines Clients mit einem SSH Server, um den Client dann über einen SSH-Tunnel fernzusteuern (inkl. Proxysettings und Proxyauthentifizierung)
Vorweg gleich mal die fertige Lösung
Als Clients wurde Windows XP und Windows 7 getestet,
als Server freesshd (Windows) und sshd (Ubuntu Linux).
Zusätzlich wurde die Verbindung über einen Proxy mit Authentifizierung: ISA Server 2006 getestet (Port 443).
Die Datei connect.exe muss, wie in dieser Anleitung beschrieben, erst erstellt werden und ist in dem Video nur als Beispiel auf unserer Website. Durch das anpassen der connect.exe, muss der Benutzer weder Passwort noch andere Informationen für den Verbindungsaufbau eingeben.
Die connect.exe baut mittels putty eine Verbindung zu einem definierten SSH-Server auf und startet gleichzeitig den VNC-Server. Falls im Internet Explorer ein proxy-Server eingetragen ist, wird dieser ausgelesen und falls dieser eine Authentifizierung verlangt, kann ein Benutzername und ein Passwort angegeben werden. (Proxy wird wahrscheinlich nur mit Port 443 funktionieren)
Details zur Verbindung bzw. zum Einrichten des Servers siehe: Rechner_uebers_Internet_sicher_fernsteuern.php
Scripts zum automatischen Verbinden zu einem SSH Server:
im Paket enthalten: TightVNC Server, Putty und ein Autoitscript welches eine .exe generiert und alle nötigen Files und Verbindungsinformationen enthält.
benötigt wird
alles was du benötigst ist: AutoIt Full Installation und folgendes ZIP-Archiv remote.zip :
connect.zip Größe:(578.76 kB): Download
in dem zip-Archiv sind folgende Dateien enthalten:
Putty für den Verbindungsaufbau:
putty.exe
3 TightVNC Dateien:
README.txt
WinVNC.exe
VNCHook.dll
und die Scriptdateien für die Verbindung:
connect.au3
putty.reg enthält Basis Settings für putty und vnc (Kennwort für vnc ist mit vnc festgelegt)
Anpassen der exe Datei
wenn du AutoIt installiert hast, musst du nur die connect.au3 anpassen:
;Putty
$Hostname= HOSTNAME ODER IP ... Hostname des SSH Servers (fixer öffentlicher DNS oder IP, kann auch ein DYNDNS oder No-IP DNS Name sein)
$Username= SSH Server Benutzer
$Kennwort= SSH Server Kennwort
$Port =443
$Puttyprofil=meineRemoteLoesung
$Portforwardings=R5999=localhost:5900,R3399=localhost:3389, .. hier sind die Ports definiert.
$Traytiptext=Verbindung hergestellt & @CRLF & i am watching you
;Variables
$Folder= @TempDir & \remotelogin ; where to store TEMP Files
Mit einem Rechtsklick auf die Datei: Compile Script werden alle nötigen Files und Settings in eine .exe Datei verpackt.
Wurde die connect.exe auf den Client ausgeführt, hat dieser zum SSH Server eine Verbindung aufgebaut:
Am SSH Server kann dann der VNC Viewer gestartet werden.
Für die Verbindung muss der unter $Portforwardings definierte Port verwenden werden, also:
localhost:5999
Kennwort:vnc
ACHTUNG: Falls keine Remoteverbindung erwartet wird, unbedingt den SSH -Server stoppen, da sich die Clients ansonsten ohne Erlaubnis auf den Rechner einloggen könnten.
{{percentage}} % positiv
DANKE für deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(am besten bewertete zuerst)]
User: Max Wirklich danke! Super Sache, nach solch einer Lösung habe ich schon lange gesucht!
User: Tom Super Lösung, funktioniert bei mir nur leider nicht zusammen mit einem Proxy. PuTTY bekommt zwar eine Verbindung, aber irgendwie klappt das mit dem Portforwarding dann nicht mehr. Meine Lösung sieht so aus: ich habe das Skript um ein weiteres PuTTY-Profil erweitert. Dieses tunnelt mir zunächst den SSH-Server auf einen lokalen Port und kann auch über einen Proxy gehen, also L:12345=SSHSERVER:443 Das eigentliche Portforwarding für VNC geht dann über diese erste Verbindung, d.h. als SSH-Server verwende ich localhost:12345
User: Olaf Kann ich nicht den Listening Mode nehmen ? Wenn nicht wieviele Zeit habe ich dann den Viewer zu öffner damit ich eine Verbindung bekomme ? und wenn ich es richtig Verstanden habe muss ich den Viewer mit localhost:5999 starten ?
man kann die hier beschrieben Variante auch so sehen: der SSH Server horcht auf einen Verbindungsaufbau (gleichbedeutend einem VNC Viewer im Listening Mode) die Verbindung wird �ber putty aufgebaut, bis hierhin alles ohne VNC. auf dem Rechner mit putty wird gleichzeitig auch der VNC Server gestartet. auf dem Rechner mit dem SSH Server kann dann die Verbinung zum VNC Server aufgebaut werden (durch den SSH TUnnel) zu deinen Fragen: 1) du brauchst den Listening Mode nicht (wird hier auch nicht funktionieren) 2) nein der VNC Viewer muss nicht offen sein, aber daf�r der SSH Server; den VNC Viewer startest du, wie du richtig beschrieben hast, mit localhost:5999
Beitrag erstellt von Bernhard
User: Olaf Ich bekomme die Verbindung mit dem dem putty hin, leider bekomme ich die verbindung nit dem VNC nicht automatisch hin? was mache ich falsch ??
was meinst du mit automatisch? den VNC Viewer musst du auf deinem Rechner manuell starten.
Beitrag erstellt von Bernhard
User: Hry Funktioniert einwandfrei. Nur bei der neuen Version von freesshd muss man ein zwei Häkchen anders setzten.
User: Hry Wenn das so gut funktioniert wie ich es mir vorstelle ist es genau das was ich seit ein paar Tagen gesucht habe. Werde es sofort heute Abend einmal ausprobieren. Die Autoit-Datei ist nochdazu übersichtlich und verständlich geschrieben. Vielen Dank für dieses tolle Script.
User: erdef Genial! funktioniert super, hab eine mobile Internetkarte, hab mir den SSH Server und Dyndns installiert, funktioniert echt super.