PuTTY SSH zu ESXi-Host

VMware ESXi bringt laufend Neuerungen, so wurde auch der OpenSSH 7.1 Daemon integriert. Dabei kommt es beim versuch mit PuTTY ein SSH Terminal zum ESXi-Host zu initialisieren zum timeout.

PuTTY SSH zu ESXi-Host

mit anschliessendem Fehler: Server unexpectedly closed network connection.

Auf dem ESXi-Host wird folgender Eintrag protokolliert, in /var/log/auth.log:

2016-08-26T19:54:51Z sshd[35650]: error: Hm, kex protocol error: type 30 seq 1

Der Grund liegt beim Algorithmus für den Schlüsselaustausch, Diffie-Hellman group exchange des PuTTY, dieser bereits über 10 Jahre alte Algorithmus zur Verschlüsselung wird von OpenSSH 7.1 nicht mehr unterstützt.

PuTTY Key exchange Algorithmus

PuTTY SSH zu ESXi-Host

Damit dennoch über PuTTY SSH Terminal Sessions möglich sind, muss der Algorithmus Diffie-Hellman group exchange nach unten verschoben werden, so das der neuere Algorithmus Diffie-Hellman group 14 zur ersten Priorität wird.

PuTTY Kex Diffie-Hellman
PuTTY Kex Diffie-Hellman

Die PuTTY Einstellung zur Session des ESXi 6.0 Host speichern, damit sind SSH-Terminal Verbindungen wieder möglich.

PuTTY SSH Client

PuTTY ist ein SSH- und Telnet-Client, der ursprünglich von Simon Tatham für die Windows-Plattform entwickelt wurde. Es ist eine Open-Source-Software, die mit Quellcode verfügbar ist und von einer Gruppe Freiwilliger entwickelt und unterstützt wird. PuTTY ist der Name einer erstmals im Jahr 1998 erschienenen Terminal-Emulatorsoftware.

Der PuTTY Client ist eine Software für textbasierte Terminalsitzungen. Mit der Software lassen sich Remote-Verbindungen per Telnet, Secure Shell, Remote Login und anderer Protokolle zu einer für diese Protokolle als Server agierenden Gegenstelle herstellen und Befehle über die Kommandozeilenoberfläche absetzen. Die Terminal-Emulatorsoftware agiert als Client und ist auf Rechnern mit Betriebssystemen wie Windows, Linux und macOS einsetzbar.

ESXi-Host

ESX und ESXi sind Hypervisoren vom Typ 1 von VMware, dem Anbieter für Virtualisierungslösungen. Mit ESXi ist es möglich, physische Host Ressourcen, wie beispielsweise Arbeitsspeicher, CPU, Netzwerk Verbindungen oder Speicherplatz unterschiedlichen virtuellen Maschinen zuzuweisen.

ESX und ESXi sind Bezeichnungen von Hypervisoren von VMware zur Virtualisierung von Servern, Rechenzentren und Rechnersystemen. ESX steht hierbei für “Elastic Sky X”, ESXi bedeutet “Elastic Sky X integrated”. Beide sind Hypervisoren von Typ 1, oder anders formuliert Bare-Metal Hypervisoren oder native Hypervisoren.

Linux Bash on Windows

Linux Bash Shell kommt auf Windows

Ermöglicht durch die Zusammenarbeit zwischen Microsoft und Ubuntu Canonical. Bash kann über das Windows 10 Startmenü gestartet werden, damit ist man in der Lage eine vollständige Linux-Kommandozeilen-Umgebung zu erhalten.

Viele Entwickler bevorzugen Linux oder auch Mac OS X, da man aus der Bash Shell (Bourne-again shell) Zugriff auf ein ganzes Universum von Dienstprogrammen hat, was Windows oft nicht beinhaltet.

Bash on Windows ist keine virtuelle Maschine und auch kein Container, es basiert auch nicht auf Cygwin oder Wine.
Es bietet sich nun die alternative, Bash Scripts auf dem lokalen Windows Computer zu entwickeln und zu testen, Verbindungen zu Remote Linux Server oder einer virtuellen Maschine wie Virtualbox oder VMware Workstation sind nicht erforderlich.

Das Ziel ist es, Apps aus dem Windows Store die vollständig auf Ubuntu lauffähig sein werden und als Programm auf dem Desktop im Userspace laufen. Programme die für Linux kompiliert werden, können auch unter Windows kompiliert und lauffähig gemacht werden. Es können die Ubuntu apt-get Kommandos angewandt werden, um Programme herunterzuladen und sie zu installieren. Entwickler können Bash Skripte schreiben und diese auf Windows ausführen. Es ist angeblich so schnell wie die selben Dienstprogramme nativ auf Ubuntu Linux laufen.

Dies ist alles im neuen Subsystem von Windows 10 ab Build 14251 integriert. Die Dateien lxcore.sys und lxss.sys bilden das neue Windows Subsystem für Linux (WSL).

Canonical Dustin Kirkland ist begeistert von der Technologie, und erklärt es so: im Grunde eine Echtzeit-Übersetzung von Linux syscalls in Windows-Betriebssystem syscalls. Linux-Freaks betrachten es als eine Art inverse Wine-Ubuntu-Binärdateien die nativ in Windows ausgeführt werden können

Um Bash on Windows nutzen zu können ist Windows 10 als 64-bit Edition und min. Build 14251 erforderlich. Empfohlen wird auf das Windows 10 Anniversary Update zu gehen, damit ist man dann auf dem Build 14393 – Stand 2. Aug 2016.

Die Installation von Bash on Windows

Als erstes muss das Windows Subsystem für Linux (Beta) installiert werden. Mit den Tasten  +R das Ausführen Fenster öffnen, und mit dem Befehl:

control appwiz.cpl,,2

die mmc-Konsole, Windows-Features aufrufen.

control_appwiz

Windows-Features

Weiter muss der Entwicklermodus aktiviert werden, über Systemsteuerung – Update und Sicherheit – Für Entwickler.

entwicklerfunktionen

Nach einem neustart stehen die Funktionen zur Verfügung.

Ubuntu Linux Installation

Starten lässt sich die Bash Shell über Start und der Eingabe bash

start_bash

Bei dieser Installation war es erforderlich, die Legacykonsole zu deaktivieren, dies geschieht über das öffnen einer Eingabeaufforderung (CMD) und mit rechts klick im Fensterbalken auf Eigenschaften.

legacykonsole

Beim ersten ausführen von bash.exe wird man die Nutzungsbedingungen zu akzeptieren gefragt. Welche wir mit „J* quittieren. Die Bash Shell wird aus dem Windows Store heruntergeladen und Installiert, weiter wird man aufgefordert ein Benutzerkonto und Passwort zu erstellen, dieser Benutzer muss nicht der selbe wie der von Windows sein.

Möchte man die Installation automatisieren, kann folgender Befehl in einer Eingabeaufforderung ausgeführt werden. Dies wird automatisch allen Aufforderungen zustimmen und den Standardbenutzer „root“ ohne Passwort vergeben.

lxrun /install /y

Linux Software Installation

Sollen nun weitere Linux Pakete installiert werden, kann dies mit apt-get, dem Advanced-Packaging-Tool getätigt werden, als erstes sollten hier gleich alle Updates eingespielt werden.

sudo apt-get update
sudo apt-get upgrade

Nach einigen Minuten ist Bash on Windows up-to-date, mit folgendem Befehl aus der Bash Shell oder direkt aus Windows ist das installieren der Linux Pakete möglich.

sudo apt-get install mc
sudo apt-get install nautilus

bash_ausfuehren

Das Windows Dateisystem kann so wohl von Bash on Windows erreicht werden, wie auch das Linux Dateisystem aus Windows.

bash_ls

explorer_lxss
%appdata%\local\lxss\rootfs

Grafische Anwendungen sind ausführbar sobald ein X Server zur Verfügung steht, ein solcher ist von Xming verfügbar, der X Window System Server for Windows lässt sich hier herunterladen und kann für Windows installiert werden.

xming

Damit das rendering einer grafischen Anwendung möglich wird, kann folgender Befehl aus der Bash Shell ausgeführt werden.

export DISPLAY=:0

Nun können Bash Kommandos abgesetzt werden, dies auch aus Windows oder aus der PowerShell.

bash Befehle ausführen
bash Befehle ausführen

X Windows Applikationen wie nautilus oder gvim können ebenfalls direkt ausgeführt werden.

Bash on Windows Unity
Bash on Windows Unity