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

typing:

ctrl_interface=/var/run/wpa_supplicant

network={
ssid="my_router_id" 
scan_ssid=1
key_mgmt=WPA-PSK
psk="1234567890"
}

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"'
OK
# wpa_cli set_network 4 scan_ssid 1
OK
# wpa_cli set_network 4 key_mgmt WPA-PSK
OK
# wpa_cli set_network 4 psk '"1234567890"' <--- note the single quotes around
OK
# wpa_cli enable_network 4
OK

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 *