Folgendes verwende ich täglich, um eine Verbindung zu einem WEP-Zugangspunkt herzustellen:
#!/bin/bash
DEV=$(iw dev | awk '/Interface/ {interf=$2} END {print interf}')
PIDFILE=/var/run/dhcpcd-$DEV.pid
if [[ -f $PIDFILE ]] && kill -0 $(cat /var/run/dhcpcd-$DEV.pid)
then
dhcpcd -k $DEV
fi
ifconfig $DEV down
sleep 1
iwconfig $DEV mode managed
iwconfig $DEV key blabfoobar
ifconfig $DEV up
iwconfig $DEV essid 'Unindicted Co-conspirator'
iwconfig $DEV ap 00:0D:51:EB:E5:1E
sleep 5
dhcpcd --noipv6rs --noarp $DEV
Sie müssen die ESSID und den MAC für den gewünschten Zugangspunkt eingeben.
Für die WPA-Verschlüsselung ist es etwas schwieriger. Sie müssen eine wpa_supplicant.conf
Datei mit einem entsprechenden Eintrag haben. So was:
# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
ssid="FaveCoffeeHouse"
psk="cafe241800"
priority=1
}
Sobald Sie eine solche conf-Datei haben, können Sie dieses Skript ausführen:
#!/bin/bash
DEV=$(iw dev | awk '/Interface/ {print $2}')
ifconfig $DEV down
iwconfig $DEV mode managed
ifconfig $DEV up
iwconfig $DEV essid 'FaveCoffeeHouse'
iwconfig $DEV ap 00:21:1e:3d:2a:80
echo now run: wpa_supplicant -Dnl80211 -i$DEV -c./wpa_supplicant.conf
Update, 03.12.2014:
Da Arch Linux das ist, was es ist, ist mein Connect-to-WEP-Skript ganz anders. Ich dachte, ich würde es zu dieser Antwort hinzufügen, um sie auf dem neuesten Stand zu halten.
#!/bin/bash
DEV=wlp12s0
if [[ -f /run/dhcpcd-$DEV.pid ]]
then
kill -QUIT $(cat /run/dhcpcd-$DEV.pid)
fi
ifconfig $DEV down
iw dev $DEV set type managed
ifconfig $DEV up
sleep 2
iw dev wlp12s0 connect -w 'Akond of Swat' 2462 00:7c:41:eb:e5:1e key 0:befedade
sleep 15
dhcpcd -4 --nohook 10-wpa_supplicant --noarp --noipv6rs $DEV
Ich musste iw
sehr plötzlich umsteigen. Etwas am Arch LTS-Kernel oder an den WiFi-Treibern (mein Laptop hat eine Intel WiFi-Karte mit dem "iwl4965" -Treiber) hat sich vor nicht allzu langer Zeit geändert. Sie müssen die Frequenz ("2462") und die MAC-Adresse des Access Points ändern, damit dies funktioniert.
iwconfig
ist veraltet und möglicherweise nicht in einem modernen Kernel konfiguriert. Dieiw
Methode ist moderner / bevorzugter ( nl80211 ). Ältereiwconfig
können merkwürdige Fehler verursachen, wenn die Unterstützung für Wext nicht kompiliert / konfiguriert ist. Ein weiteres Problem ist, welche Tools / Skripte von Distributionen zur Verfügung gestellt werden. Ich denke, wenn Sie eine Distribution verwenden, sollten sie darauf achten, die richtigen Pakete / Konfigurationen zu geben. Wenn Sie Ihre eigenen erstellen, haben Sie möglicherweise das oben genannte Problem.