Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Das Verbinden zu einem WLAN, das bestimmte Sonderzeichen wie z.B. ö, ä, ü, ß
und §
im Namen (ESSID) oder im Kennwort hat, bereitet unter Linux Probleme. Das gilt für alle Zeichen im erweiterten Zeichensatz ab Dezimalwert 128 (siehe ASCII-Tabelle 8Bit ). Es wird generell dazu geraten, keine Sonderzeichen bei der Einrichtung von WLAN zu verwenden. Wenn man allerdings darauf keinen Einfluss hat (Universität, Arbeit oder Familie), kann folgende Anleitung helfen.
Andere Betriebssysteme verwenden oft noch die ältere ISO-8859-15 Zeichenkodierung, Ubuntu allerdings den neuen internationalen Standard UTF-8. Ein Sonderzeichen oder Umlaut unter Ubuntu stimmt dann mit dem entsprechenden Zeichen im Zugangsschlüssel oder der ESSID des Routers nicht überein. Mit einer manuellen Konfiguration über wpa_supplicant und durch das Umwandeln der ESSID und/oder des Kennworts in hexadezimalen Code können auch Sonderzeichen verwendet werden.
Bei der Einrichtung des eigenen WLAN-Netzes können folgende Zeichen für die SSID und das Kennwort (PSK) problemlos verwendet werden. Das Kennwort muss mindesten 8 Stellen lang sein und darf max. 63 Zeichen in Klartext (ASCII) umfassen. Folgende Zeichen sind erlaubt und werden auch von anderen Betriebssystemen wie Windows oder macOS / Mac OSX richtig erkannt:
a-z A-Z 0-9 ! " # $ % & '( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
Umlaute wie z.B. ä ü ö Ä Ü Ö ß und das Akzentzeichen ´ sind nicht erlaubt.
Ist die Konfigurationsdatei /etc/wpa_supplicant/wpa_supplicant.conf bereits vorhanden, sollte diese wegen der falschen Zeichenkodierung zuerst umbenannt oder gelöscht [1] werden.
Datei umbenennen:
sudo mv /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.conf.utf8
Datei löschen:
sudo rm /etc/wpa_supplicant/wpa_supplicant.conf
Dann muss die Zeichenkodierung der Konsole geändert werden. Dazu öffnet man ein Terminal [1], und navigiert in der Menüleiste zu "Terminal -> Zeichenkodierung festlegen -> ISO-8859-15". Gegebenenfalls muss diese Auswahl noch hinzugefügt werden.
Sind im Zugangsschlüssel keine Sonderzeichen enthalten, genügt es die ESSID in Hex-Code umzuwandeln und in die wpa_supplicant.conf einzutragen. Dazu verwendet man das Programm hexdump im Terminal [1]. Zuerst wird die ESSID mit Sonderzeichen in die Datei ~/essid übertragen, da hexdump nicht direkt über die Terminaleingabe decodieren kann. Grundsätzlich sollte der Name keine Rückschlüsse auf die verwendete Hardware zulassen, um Angriffe auf das WLAN zu erschweren.
Es wird die Textdatei ~/essid mit dem Inhalt ESSID-mit-Sonderzeichen-öäüÖÄÜß erzeugt:
echo 'ESSID-mit-Sonderzeichen-öäüÖÄÜß' > essid
Anschließend wird der Inhalt der Datei mit dem Befehl hexdump in hexadezimalen Code umgewandelt und in die Konfigurationsdatei übertragen. Der angehängte Parameter gibt zur Kontrolle nochmal den Namen in Klartext aus ('31/1 "%c"'
), definiert eine einzeilige Ausgabe und die maximal mögliche Länge der ESSID von 32 Zeichen in Hex-Code (-e '32/1 "%X"'
) und löscht anschließend das nicht benötigte Dateiendezeichen (sed -i s/A_del_EOF//
). Der komplexe Befehl kann auch einfach in ein Terminalfenster kopiert werden:
hexdump -e '"# ESSID: "' -e '31/1 "%c"' -e ' "\n" "# entspricht hex-Code: ssid="' -e '32/1 "%X"' -e '"_del_EOF\n"' essid | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf && sudo sed -i s/A_del_EOF// /etc/wpa_supplicant/wpa_supplicant.conf
Der Eintrag in der Datei wpa_supplicant.conf sieht dann für das angegebene Beispiel so aus:
# ESSID: ESSID-mit-Sonderzeichen-öäüÖß # entspricht hex-Code: ssid=45535349442D6D69742D536F6E6465727A65696368656E2DF6E4FCD6DF
Den beiden Einträgen ist eine Raute (#) vorangestellt. Dabei handelt es sich um Kommentare, die vom System nicht beachtet werden. Sind im Zugangsschlüssel keine Sonderzeichen enthalten, geht man zum Abschnitt Konfigurationsdateien vervollständigen.
Falls noch nicht geschehen, muss auch hier zuerst die Zeichenkodierung der Konsole geändert werden.
Die Berechnung erfolgt im Terminal [1] mit dem Programm wpa_passphrase. Der kombinierte Befehl trägt den erzeugten Schlüssel direkt in die Konfigurationsdatei /etc/wpa_supplicant/wpa_supplicant.conf ein.
wpa_passphrase 'ESSID-mit-oder-ohne-Sonderzeichen' 'WPA-Key-mit-oder-ohne-Sonderzeichen' | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf
Eventuell muss die ESSID oder der Schlüssel noch einmal manuell eingegeben werden, sollte wegen eines Sonderzeichens am Anfang die Eingabe nicht akzeptiert werden. Das Programm schaltet automatisch um und erwartet die Eingabe über Tastatur.
Nun steht in der Datei /etc/wpa_supplicant/wpa_supplicant.conf die korrekte hexadezimale Zeichenfolge für die ESSID und ggf. für den Zugangsschlüssel. Die Datei kann danach mit einem Editor [2] bearbeitet werden, um die notwendige Konfiguration zu vervollständigen. Beim ersten Aufruf des Editors [2] kann es zu einer Fehlermeldung wegen des veränderten Zeichensatzes kommen. Auch dann muss zuerst der Zeichensatz ISO-8859-15
ausgewählt werden.
Inhalt der Konfigurationsdatei nach Ausführen der Befehle hier im Beispiel:
# ESSID: ESSID-mit-Sonderzeichen-öäüÖß # entspricht hex-Code: ssid=45535349442D6D69742D536F6E6465727A65696368656E2DF6E4FCD6DF network={ ssid="ESSID-mit-oder-ohne-Sonderzeichen" #psk="WPA-Key-mit-oder-ohne-Sonderzeichen" psk=502595b9d040737548bfac570a3bf30798b0cc69d586276216ecbdb447809097 }
Benötigt werden jetzt nur die umgewandelte ESSID und der Zugangsschlüssel in hex-Code. Die restliche Konfiguration ist von der verwendeten Verschlüsselung abhängig und muss gemäß WLAN/wpa supplicant ergänzt werden.
Ein Beispiel für WPA2-Verschlüsselung:
ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=1 network={ ssid=45535349442D6D69742D536F6E6465727A65696368656E2DF6E4FCD6DF # ssid=alternativ_Deine_ESSID_ohne Sonderzeichen_in_Klartext scan_ssid=1 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=CCMP TKIP psk=502595b9d040737548bfac570a3bf30798b0cc69d586276216ecbdb447809097 # psk="alternativ_Dein_WPA_Netzwerkschlüssel_ohne_Sonderzeichen_in_Klartext" }
Die Datei /etc/network/interfaces muss ebenfalls mit einem Editor [2] bearbeitet werden. Der entsprechende Verweis auf die Konfigurationsdatei ist einzufügen. Hier für die Schnittstelle wlan0
. Siehe dazu auch interfaces.
auto lo iface lo inet loopback iface eth0 inet dhcp iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf auto wlan0
Nach Änderungsarbeiten an der Datei interfaces und Einrichten der Verschlüsselung mit wpasupplicant kann das Netzwerk mit Übernahme der aktuellen Daten über das Terminal [1] neu gestartet werden:
sudo /etc/init.d/networking restart
Sind alle Einstellungen richtig, sollte jetzt eine verschlüsselte Verbindung zum Router aufgebaut werden.
Diese Revision wurde am 31. August 2016 20:18 von MultiUser erstellt.