Schlagwort-Archive: OpenSSH Secure Shell

OpenSSH Secure Shell provides a large suite of secure tunneling capabilities, several authentication methods, and sophisticated configuration options.

vncserver Installation auf CentsOS-Fedora

vncserver ist ein Dienstprogramm, das einen VNC-Desktop (Virtual Network Computing) startet.

Es führt Xvnc mit entsprechenden Optionen aus und startet ein Fenstermanager. Der VNC-Desktop vncserver ermöglicht es Benutzern, Sitzungen parallel auf einer Maschine auszuführen, auf die dann von einer beliebigen Anzahl von Clients von überall zugegriffen werden kann.

GNOME Desktop Umgebung Installieren

Der vncserver kann den Unity Desktop nicht virtualisieren, deshalb wir erst ein alternativen Window Manager installieren, es eignet sich der xfce oder Mate Desktop, letzter wir hier verwenden. Wir führen die folgenden zwei Befehle aus, wobei wir erst root werden:

~] $ sudo su -
[sudo] Passwort für USER:
~] # dnf -y group install "MATE Desktop"

VNC-Server installieren

Um den TigerVNC Server zu installieren, führt man folgenden Befehl aus:

~] # dnf -y install tigervnc-server

VNC-Servers Konfigurieren

Die Konfigurationsdatei /etc/systemd/system/vncserver@.service wird für den VNC-Server erforderlich. Um die Datei zu erstellen, kopieren wir die Datei /lib/systemd/system/vncserver@.service wie folgt als root:

~] # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@.service

Wir bearbeiten /etc/systemd/system/vncserver@.service, und ersetzen bei jedem USER diesen durch den tatsächlichen Benutzernamen. Lasse die restlichen Zeilen der Datei unverändert. Das Argument -geometry gibt die Größe des zu erstellenden VNC-Desktops an. Standardmäßig ist auf 1024×768 eingestellt.

ExecStart=/sbin/runuser -l USER -c "/usr/bin/vncserver %i -geometry 1280x1024"
PIDFile=/home/USER/.vnc/%H%i.pid

Um die Bildschirmauflösung auf die des Clients anzupassen, wird die Datei mit vi ~/.vnc/config editiert.

geometry=1360x768

Nach dem Speichern, den folgenden Befehl ausführen, damit werden die Änderungen sofort wirksam:

~] # systemctl daemon-reload

Lege das Passwort für den Benutzer fest, dieser in der Konfigurationsdatei definiert ist. Beachte dass man zuerst von root zu USER wechseln muss.

~]# su - USER
~]$ vncpasswd
Password:
Verify:

Die Mate Desktop Umgebung in die VNC-Konfiguration ~/.xinitrc übernehmen:

~] # echo "exec /usr/bin/mate-session" >> ~/.xinitrc

Die Konfigurationsdatei ~/.vnc/xstartup ist für den VNC-Daemon nicht erforderlich, sollte jedoch angepasst werden:

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
#exec /etc/X11/xinit/xinitrc
exec /usr/bin/mate-session

Firewall Konfigurieren

Damit der VNC-Client sich zum VNC-Server verbinden kann, wird die Firewall konfiguriert:

~] # firewall-cmd --add-service=vnc-server --permanent
~] # firewall-cmd --reload

VNC-Server starten

Um den Dienst zu starten und zu aktivieren, geben wir die Display Nummer direkt im Befehl ein. Die unter der ersten VNC-Verbindung konfigurierte Datei funktioniert als Vorlage, in der %i durch systemd mit der display_number in der regel mit 1 ersetzt wird. Führe dazu folgenden Befehl aus:
systemctl start vncserver@:display_number.service

~] # systemctl start vncserver@:1.service

Der Dienst soll beim Systemstart automatisch starten. Dazu gibt man als root den Befehl wie folgt ein:

~] # systemctl enable vncserver@:1.service

Jetzt können Benutzer vom Client mit VNC-Viewer-Programm eine Verbindung zum VNC-Server herstellen, über die Display Nummer und dem Passwort, dieses wir zuvor mit vncpasswd vergeben haben.

Für Windows gibt es die Freeware TightVNC-Viewer, um ein virtuellen Desktop herzustellen, hier ist die Display Nummer 1, welche beim VNC-Viewer im Feld Remote Host eingetragen wird, mit der IP und Port 5901, mit Doppelpunkt dazwischen.

Abbildung: TightVNC-Viewer Windows

Download TightVNC: http://www.tightvnc.com/

Weitere VNC-Viewer für Mac OS X, iOS, Android, Chrome OS und Raspberry Pi gibt es von RealVNC, ebenfalls als Freeware, damit ist die VNC-Desktop (Virtual Desktop) Anwendung von jedem Gerät aus möglich.

Troubleshooting

Die vncserver Log-Datei ist unter $HOME/.vnc/hostname:1.log

~] $ tail ~/.vnc/fedora.localdomain:1.log

Der hostname fedora.localdomain durch den tatsächlichen ersetzen.

Überprüfen ob der VNC-Server gestartet ist:

~] $ systemctl status vncserver@:1

Die Ausgabe des laufenden vncserver Prozess in etwa wie folgt:

Mit netstat wird überprüft, ob der VNC Port 5901 LISTEN ist:

~] $ netstat -tuln | grep 5901

Tunneln der VNC-Server Verbindung über SSH

VNC-Verbindungen gelten als unsicher, da sie nicht verschlüsselt sind. Im letzten Schritt tunneln wir die VNC-Verbindung mit SSH, um den VNC-Verkehr zu verschlüsseln und zu sichern. Um den Tunnel auszuführen, benötigen wir den Login-Benutzer, sein Passwort und den Port. Führe auf dem Client folgenden Befehl aus:

ssh -L 5901:127.0.0.1:5901 -N -f -l USER 10.127.52.76

Das Passwort wird zur Ausführung des Tunnels aufgefordert. Bitte beachte, dass es sich dabei um das Passwort für den SSH-Login handelt, die Benutzeranmeldung zum VNC kann idealerweise die selbe UID sein, dann ist das VNC-Passwort das selbe. Der Port der getunnelt werden muss ist 5901, wie oben gezeigt. Der Befehl wird auf dem Computer des VNC-Viewer ausgeführt.

Unter Windows kann mittels PuTTY oder KiTTY ein SSH-Tunnel zum VNC-Server geöffnet werden, dabei wird das Loopback Interface über Port 5901 getunnelt.

Abbildung: KiTTY Configuration

Unter der der Category, Connection – SSH – Tunnels, bei Source Port wird 5901 eingetragen, Destination ist 127.0.0.1:5901, dann mit klick auf Add wird der Tunnel hinzugefügt.

Mit klick auf Open wird der Tunnel gestartet, indem man sich beim VNC-Host anmeldet.

Die sichere SSH-Verbindung zum VNC-Server kann nun initialisiert werden. Es wird bei Remote Host die Loopback Adresse 127.0.0.1 mit Port 5901 im TightVNC-Viewer eingetragen.

Nach der Anmeldung gibt Connection Information Auskunft über die aktuelle Verbindung.

OpenSSH in Windows 10

OpenSSH für Windows

Mit dem Build 1709 „Fall Creators Update“ hat Windows 10 auch ein paar versteckte Features eingeführt, die für Linux Admins und Poweruser interessant sind. Das beste für Linux- und Unix-Anwender ist vermutlich die Integration des SSH-Client und Server, wie bereits vor zwei Jahren angekündigt, der auf OpenSSH basierte SSH-Client.

Der Windows 10 SSH-Client

Um den SSH-Client auf Windows 10 zu aktivieren, gib man in der Eingabeaufforderung folgendes Command ein.

dism /online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0

Anschließend kann der Client, der unter dem Pfad  „C:\WINDOWS\System32\OpenSSH“ installiert wurde, aus dem CLI wie von der Linux Shell gewohnt genutzt werden, beispielsweise auch ein lokales und Remote-Port-Forwarding steht zur Verfügung.

ssh -i C:\Users\homer\ssh\privkey.pem homer@lisa.simpson.home

                SSSSS  OOOO  L        AA   RRRRR   III  SSSSS
               S      O    O L       A  A  R    R   I  S
               S      O    O L      A    A R    R   I  S
                SSSS  O    O L      AAAAAA RRRRR    I   SSSS
                    S O    O L      A    A R R      I       S
                    S O    O L      A    A R  R     I       S
               SSSSS   OOOO  LLLLLL A    A R   R   III SSSSS

Linux Version 2.6.32-642.1.1.el6.x86_64, Compiled #1 SMP Tue May 31 21:57:07 UTC 2016
    Two 2.67GHz Intel Pentium Xeon Processors, 16GB RAM, 10667 Bogomips Total
                       Uptime 1482 days 17 hours 43 minutes
                                 lisa.simpson.home


homer@thinkpad0@lisa.simpson.home's password:

Die Windows-native OpenSSH-Implementierung, die Remote-Sitzungen in der Eingabeaufforderung „cmd“ und in der PowerShell ermöglicht, erlaubt nun ohne SSH-Tools auszukommen, wie es das Windows-Subsystem für Linux (WSL) mit bash on Windows, PuTTY oder KiTTY und dergleichen wäre.

Sollen Dienstprogrammen wie vi, top, man, multitail und weitere verwendet werden, macht man die besten Erfahrungen, in dem man die Windows SSH-Client Verbindung mit einem * nix-Server hat, das Terminal für einen xterm-ähnlichen Rendering-Modus konfiguriert.

TTY Support in Windows OpenSSH

Öffne hierzu die Eingabeaufforderung (cmd) und klicke mit der rechten Maustaste im Fenster oben links auf das kleine Icon    dann unten auf Eigenschaften.

Abbildung: Eigenschaften von Eingabeaufforderung

Stelle sicher dass Legacykonsole (erfordert Neustart) nicht deaktiviert ist.

Des Terminal Fenster sollte eine probate Größe haben, entsprechend zum gewählten Font und dessen Größe.

Abbildung: Eigenschaften von Eingabeaufforderung – Layout

Im Register Layout die Fensterbreite und Buffergrösse auf 110 setzen.

Für TTY und PTY wird der VT100 Terminal Emulator unterstützt, dazu benötigt es die Umgebungsvariable XTERM diese in der Windows MMC-Konsole mit Win + R control sysdm.cpl,,3 gesetzt werden kann.

Unten auf Umgebungsvariablen klicken und im Abschnitt Systemvariablen auf Neu klicken und die Variable TERM=xterm eintragen.

Das Fenster schließen und wieder öffnen, nun ist das TTY Terminal in einer SSH Verbindung anwendbar.

Hinweis zur Implementierung

Windows verfügt über keine integrierte Unterstützung für ein Pseudoterminal.

Die Windows-Version des OpenSSH-Servers implementiert einen VT100 PTY, indem Windows Console-Ereignisse abgefangen werden. Dies ist in ssh-shellhost.exe implementiert, verbunden mit sshd über stdout input/output. Auf einer high-level Ebene fungiert ssh-shellhost.exe als Vermittler zwischen sshd und einer Windows-Konsole, die Folgendes ausführt:

Interpretiert eingehende VT100, Prozesse und Aufrufe von Windows Console IO.

Verarbeitet die Ereigniswarteschlange der Windows-Konsole (Ausgabe), übersetzt sie in VT100 und gibt sie auf stdout aus.