SSH Keys – Windows Subsystem for Linux

Um bereits vorhandene SSH-Keys eines Windows Host-Systems in einer WSL Instanz nutzen zu können, reicht es aus, den Private und Public Key vom Host-System in das Home-Verzeichnis des WSL Benutzers zu kopieren.

Dies geschieht mit dem folgenden Befehl (angenommen das Benutzer-Verzeichnis liegt unter C:\Users\USERNAME):

cp /mnt/c/Users/USERNAME/.ssh/{id_rsa,id_rsa.pub} ~/.ssh/ && chmod 600 ~/.ssh/id_rsa

Anschließend steht der Key wie gewohnt der WSL Instanz zur Verfügung.

Änderung des Tastaturlayouts per Hotkey unterbinden unter Windows

Es gibt unter Windows den Hotkey [ALT] + [l. Shift], mit dem das Tastaturlayout z.B. auf Englisch geändert werden kann. Dann sind u.a. die Y- und Z-Taste vertauscht.

Leider kommt es in Spielen wie z.B. Playerunknown’s Battlegrounds schnell mal dazu, dass man diese Funktion ungewollt aktiviert. Und zwar wenn man beim Sprinten zusätzlich die [ALT]-Taste drückt um sich umzusehen. Prompt hat man unbemerkt auf das englische Layout gewechselt und kann sich plötzlich nicht mehr hinlegen -> Y- und Z-Taste vertauscht.

Zum Glück kann man diese Funktion unter Windows in einem sehr versteckten Untermenü abschalten. Auf dem folgenden Screenshot ist der Weg zur Einstellung dargestellt.

UTF-8 in Windows Shell

Um unter Windows z.B. Umlaute richtig in der Eingabeaufforderung darstellen zu lassen, muss manchmal zunächst die passende Codepage aktiviert werden, um den vollen UTF-8 Zeichensatz darstellen zu können.

Dazu öffnet man eine neue Eingabeaufforderung oder PowerShell und gibt folgenden Befehl ein:

chcp 65001

Die Eingabe sollte mit „Aktive Codepage: 65001“ bestätigt werden.

Webserver kann nicht auf Port 80 starten

Falls es beim Start eines Docker Containers unter Windows zu folgendem Fehler kommt

docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint […]: Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error Permission denied.

könnte ein Windows-Dienst der still und heimlich im Hintergrund auf Port 80 läuft die Ursache dafür sein.

Mit dem PowerShell Befehl

Get-NetTCPConnection -LocalPort 80 | Format-List

findet man dann relativ wenig hilfreiche Informationen – außer, dass wie in meinem Fall ein Prozess mit der ID 4 den Port verwendet.

Get-Process -Id 4

Liefert als „ProcessName“ lediglich „System“.

Wenn man anschließend den PowerShell Befehl

net stop http

verwendet, listet Windows die Dienste auf, die aktuell an den Port 80 angebunden sind und im nächsten Schritt beendet werden. Bei mir waren das u.a. die Druckerwarteschlange, Windows Media Player-Netzwerkfreigabedienst, WWW-Publishingdienst, SSDP-Suche und einige weitere mehr. Die Abfrage, ob diese Dienste jetzt beendet werden sollen habe ich mit „J“ bestätigt und schon funktionierte anschließend auch der Start eines nginx auf dem lokalen Port 80.

docker run -d -p 80:80 nginx

Hyper-V unter Windows 10 aktivieren und deaktivieren

Windows 10 (und 8) Pro und Enterprise bringen das Hyper Virtualization Feature (kurz: Hyper-V) mit, was von Docker zwingend benötigt wird, um unter Windows lauffähig zu sein.

Hyper-V kann auf verschiedene Arten ein- und ausgeschaltet werden. Am einfachsten geht es per Shell-Befehl. Dafür wird eine Shell mit Administratorberechtigung benötigt.

Hyper-V aktivieren:

bcdedit /set hypervisorlaunchtype auto

– oder –

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Hyper-V deaktivieren:

bcdedit /set hypervisorlaunchtype off

– oder –

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V /All

Anschließend sollte der PC neugestartet werden.

Eine Anmerkung zur Verwendung von Docker und VMware auf einem System. Leider ist VMware im Moment nicht mit Hyper-V kompatibel. Das führt dazu, dass man immer nur eine der beiden Virtualisierungslösungen nutzen kann, da Docker auf Hyper-V angewiesen ist.

Canon ZoomBrowser EX ohne CD per Update installieren

Um die Software Canon ZoomBrowser EX ohne die originale CD installieren zu können, müssen ein paar Änderungen an der Windows Registrierung vorgenommen werden.

Es werden lediglich ein paar Schlüssel hinzugefügt, also keine Änderungen bestehender Werte:

Unter

HKEY_LOCAL_MACHINE\SOFTWARE

den Schlüssel

Canon

anlegen, falls er nicht schon existiert.

Danach unter Canon den Schlüssel

ZoomBrowser Ex

sowie unter diesem Schlüssel den Schlüssel

Install

anlegen.

Danach sollte man mit den Updateversionen von der Canon Support-Seite ZoomBrowser Ex installieren können.

Für die Programme EOS Utility, FileViewerUtility, EOSViewerUtility, DPP oder PhotoStitch sollten die Schlüssel wie folgt angelegt werden:

HKEY_LOCAL_MACHINE\SOFTWARE\Canon\ZoomBrowser EX\Install
HKEY_LOCAL_MACHINE\SOFTWARE\Canon\EOS Utility
HKEY_LOCAL_MACHINE\SOFTWARE\Canon\FileViewerUtility
HKEY_LOCAL_MACHINE\SOFTWARE\Canon\EOSViewerUtility
HKEY_LOCAL_MACHINE\SOFTWARE\Canon\DPP
HKEY_LOCAL_MACHINE\SOFTWARE\Canon\PhotoStitch

PeerGuardian Alternative für Windows 7 – PeerBlock

Nachdem ich mein geliebtes Windows XP Professional 32bit vor gut 2 Monaten durch Windows 7 Professional 64bit ersetzt hatte musste ich feststellen, dass das ein oder andere Programm nicht mit Windows 7 kompatibel ist (hauptsächlich aufgrund der 64bit Version von Windows 7). Unter anderem bestand dieses Problem für ein in meinen Augen sehr nützliches Freeware Programm –> PeerGuardian. Bis heute ist nur ein Release Candidate von PG verfügbar, der mit gewissen Workarounds lauffähig gemacht werden kann. Auf der Suche nach einer Alternative für dieses Programm bin ich im PeerGuardian Forum auf PeerBlock gestossen. Das Programm ist in einer stabilen 1.0 Version verfügbar und funktioniert einwandfrei mit Windows 7 32/64bit sowie allen anderen Windows Versionen. Außerdem sieht es nahezu genauso wie das gute alte PeerGuardian aus, da es auf eben diesem Source Code aufbaut. Somit bin ich in Zukunft wieder vor unangemeldeten „Lauschattacken“ geschützt…

PeerBlock Download

Subdomains in lokaler Entwicklungsumgebung

Heute wollte ich auf meiner lokalen Entwicklungsumgebung die unter http://minibox/ erreichbar ist eine Subdomain a la http://subdomain.minibox/ einrichten, um bei der lokalen Entwicklung eine Serverumgebung zu simulieren, in der sich die Webseite nicht in einem Unterverzeichnis (http://minibox/subdomain/) befindet, sondern in der obersten Ebene des Webservers. Zunächst hatte ich einige Probleme bei der Konfiguaration aber nach ein wenig “Googlei” habe ich nun die Lösung für die Einrichtung von Subdomains innerhalb einer lokalen Entwicklungsumgebung gefunden.

Meine Konfiguration:
Windows XP
XAMPP mit Apache2
lokale Adresse des Servers: http://minibox/
IP Adresse des Servers: 192.168.1.100
Document Root des Apache: D:\lokal_dev

Zunächst muss man die Datei “httpd-vhosts.conf” in “X:\xampp\apache\conf\extra” bearbeiten.
Dort entfernt man die “#” vor “# NameVirtualHost *:80″.
Danach fügt man folgende Einträge am Ende der Datei hinzu:


  ServerAdmin admin@minibox
  DocumentRoot D:/local_dev/
  ServerName minibox
  ServerAlias minibox
  ErrorLog logs/error.log
  CustomLog logs/access.log common
  
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  



  ServerAdmin polarwind@minibox
  DocumentRoot D:/local_dev/polarwind/
  ServerName polarwind.minibox
  ServerAlias polarwind.minibox
  ErrorLog logs/polarwind-error.log
  CustomLog logs/polarwind-access.log common
  
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
  

Das 1. VirtualHost ist die Konfiguration für die Domain “http://minibox/“. Dort steht als “DocumentRoot D:/local_dev/“. Dieser Eintrag muss mit dem aus der “httpd.conf” übereinstimmen. Als ServerName und Alias sind jeweils “minibox” eingetragen, da ich den Server über diesen Namen erreichen will.

Das 2. VirtualHost ist die Konfiguration für die Subdomain “http://polarwind.minibox/“. Hier ist das “DocumentRoot D:/local_dev/polarwind“. Also das Verzeichnis, in dem die Dateien für liegen, die über die Subdomain abrufbar sein sollen. Als ServerName und Alias stehen hier “polarwind.minibox“. Dadurch können die Inhalte aus dem DocumentRoot über “http://polarwind.minibox/” aufgerufen werden.

Nun muss noch eine weitere Datei bearbeitet werden. Und zwar die Datei “hosts“. Sie liegt bei Windows XP in “C:\WINDOWS\system32\drivers\etc“. Dort können IP Adressen mit Hostnamen verbunden werden. In meinem Beispiel trage ich eine neue Zeile ein:

192.168.1.100        minibox        polarwind.minibox

“192.168.1.100” ist die lokale IP Adresse meines Computers. Über diese IP Adresse sind die Hostnamen minibox und polarwind.minibox nun erreichbar. Somit kann ich im Browser beispielsweise polarwind.minibox eingeben und bekomme den Inhalt des vorher definierten VirtualHosts angezeigt.

Ich hoffe, dass ich mit dieser Anleitung dem ein oder anderen helfen konnte!