How to connect to a WiFi from command line under Ubuntu without .conf file?

Posted on

Problem :

I can connect to my WiFi out of the shell by doing:

nano wireless-wpa.conf




and doing:

ifconfig eth1 down
iwconfig eth1 mode Managed
ifconfig eth1 up
killall wpa_supplicant
wpa_supplicant -B -Dwext -i eth1 -c ./wireless-wpa.conf -dd
dhclient eth1

Pretty complicated.. Is there a possibility to connect to a WiFI via shell without the need of a wireless-wpa.conf?

Solution :

You can control a running wpa_supplicant using it’s control interface, which you already specify in your .conf file. While this still needs a .conf file, you don’t have to put any wireless networks in it, and don’t have to change it. You can then configure it with wpa_cli.

wpa_cli may need to be told which wpa_supplicant instance and interface to configure:

wpa_cli -p /var/run/wpa_supplicant -i wlan0 command ...

For clarity, I’ll use just wpa_cli here. Basically, you need to create a network, set its variables, and enable it:

# wpa_cli add_network
4                                          <--- note the network ID!
# wpa_cli set_network 4 ssid '"Your SSID"'
# wpa_cli set_network 4 scan_ssid 1
# wpa_cli set_network 4 key_mgmt WPA-PSK
# wpa_cli set_network 4 psk '"1234567890"' <--- note the single quotes around
# wpa_cli enable_network 4

You want a cli command that manages your wpa_suplicant-config?
Have you tried ifup, ifdown and ifcfg? They handle connection scripts and work for wifi too but may need some tinkering with.

Leave a Reply

Your email address will not be published. Required fields are marked *