VNC über SSH für sichere Verbindungen
Vorsicht
Dieser Artikel wurde mehr als vor einem Jahr veröffentlicht, Es gab Entwicklungen können.
Bitte berücksichtigen Sie dies.
Heute sehen wir, wie man einen Remote-Rechner per GUI mit VNC durch einen sicheren SSH-Tunnel steuert.
Für diejenigen, die es nicht wissen, kurzgesagt, VNC (Virtual Network Computing) ist ein Fernanzeigesystem, mit dem Sie eine Umgebung sehen können “Desktop” (GUI) läuft nicht nur auf der Maschine, auf der es läuft, aber überall aus dem Internet aus einer Vielzahl von Architekturen.
SSH (Sichere Shell) Stattdessen ist es ein Programm zum Anmelden und Ausführen von Befehlen auf einem Remote-Computer. Die Kommunikation erfolgt verschlüsselt (Tunnelbau) zwischen zwei unzuverlässigen Hosts in sogar verschiedenen Netzwerken. X11-Verbindungen und TCP/IP-Ports können über SSH angesprochen werden.
Und es ist X11, das wir im SSH-Tunnel routen wollen. Auf diese Weise haben wir eine unsichere X11-Verbindung in einem sicheren SSH-Tunnel (den gesamten Vorgang sicher zu machen).
Am Ende ist es keine komplexe Operation. Wir müssen SSH anweisen, einen lokalen Tunnel zu erstellen, der localhost auf dem Port weiterleitet 5901 an denselben Port auf einem Remote-Computer, aber über den Standard-SSH-Port (22). Die wesentliche Voraussetzung ist also der Zugriff auf die entfernte Maschine über den Port 22. Lassen Sie uns darauf achten, dann, auch bei Port-Weiterleitung sul-Router, zu physische Firewalls und zu jedem Firewall-Software (iptables) auf Clients und Servern installiert. Ohne, das Verfahren kann nicht funktionieren.
Was wird benötigt?
Auf dem lokalen Rechner:
- OpenSSH
- VNC Viewer (jeder VNC-Viewer)
Auf dem Remote-Rechner:
- OpenSSH-Server
- VNC-Server
Die Installation ist sehr einfach. Für Debian und Derivate:
~# apt install openssh vnc-server vnc-viewer
Abgeleitet von RedHat:
~# yum install openssh-server openssh-clients vnc-server vnc-viewer
Wir können jeden VNC-Viewer verwenden. Ich bevorzuge den klassischen Viewer, der in den Repositories vorhanden ist.
Erstellen Sie den SSH-Tunnel
Als erstes müssen Sie die verschlüsselte Verbindung erstellen, die Pakete von localhost weiterleitet (Tür 5901) all’host remoto (Tür 5901) durch die Tür 22. Wir tun dies in einem einzigen Befehl:
~$ ssh -L 5901:localhost:5901 user@REMOTE_IP
Bei user
wir meinen den vorhandenen Benutzer auf dem Remote-Computer, mit REMOTE_IP meinen wir die entfernte IP der Maschine, mit der wir uns verbinden wollen. Vorsicht: root ist nicht immer so konfiguriert, dass eingehende SSH-Verbindungen akzeptiert werden.
Wenn Sie zum ersten Mal mit diesem Host sshen, werden Sie gefragt, ob Sie diesen bestimmten Host zur Liste bekannter Hosts hinzufügen möchten.: ~/.ssh/known_hosts
.
An dieser Stelle müssen Sie das Passwort des Benutzers eingeben, der auf dem Remote-Computer registriert ist, zu dem wir eine Verbindung herstellen möchten.
Für eine noch sicherere Verbindung wäre es ratsam, die SSH-Authentifizierung auf Schlüsseln zu verwenden. Vielleicht werde ich später in einem Artikel darüber sprechen.
Verbinden Sie den VNC-Client
Jetzt müssen wir den VNC-Client aktivieren. Wie schon gesagt ist es egal welche du verwendest, entscheidend ist die Adresse, die Sie für den Verbindungsaufbau verwenden. Anstatt die IP der Remote-Maschine zu schreiben, müssen wir schreiben localhost:5091
. Dies liegt daran, dass wir bereits einen Tunnel vom Client erstellt haben:5901 der Server:5901. Sobald wir uns mit localhost verbunden haben, verwendet der VNC-Client den neu erstellten SSH-Tunnel, um eine Verbindung zum Server am Port herzustellen 5901.
Obwohl es Clients gibt, die die SSH-Funktion in den VNC-Viewer integrieren, ist dies die einfachste Methode, um zu verstehen, was passiert, wenn wir einen Datenfluss über SSH weiterleiten.
0 Kommentare