wpa_cli8
Console utility for wifi authentication with wpa_supplicant
Usage
wpa_cli [-p
path_to_ctrl_sockets]
[-i
ifname]
[-hvB]
[-a
action_file]
[-P
pid_file]
[-g
global_ctrl]
[-G
ping_interval]
command ...
Overview
The wpa_cli utility is a text-based frontend program for interacting with wpa_supplicant(8). It is used to query current status, change configuration, trigger events, and request interactive user input.
The wpa_cli utility can show the current authentication status, selected security mode, dot11 and dot1x MIBs, etc. In addition, wpa_cli can configure EAPOL state machine parameters and trigger events such as reassociation and IEEE 802.1X logoff/logon.
The wpa_cli utility provides an interface to supply authentication information such as username and password when it is not provided in the wpa_supplicant.conf(5) configuration file. This can be used, for example, to implement one-time passwords or generic token card authentication where the authentication is based on a challenge-response that uses an external device for generating the response.
The wpa_cli utility supports two modes: interactive and command line. Both modes share the same command set and the main difference is in interactive mode providing access to unsolicited messages (event messages, username/password requests).
Interactive mode is started when wpa_cli is executed without any parameters on the command line. Commands are then entered from the controlling terminal in response to the wpa_cli prompt. In command line mode, the same commands are entered as command line arguments.
The control interface of wpa_supplicant(8) can be configured to allow non-root user access by using the ctrl_interface_group parameter in the wpa_supplicant.conf(5) configuration file. This makes it possible to run wpa_cli with a normal user account.
Authentication parameters
When wpa_supplicant(8) needs authentication parameters, such as username and password, that are not present in the configuration file, it sends a request message to all attached frontend programs, e.g., wpa_cli in interactive mode. The wpa_cli utility shows these requests with a “CTRL-REQ-⟨type⟩-⟨id⟩:⟨text⟩” prefix, where ⟨type⟩ is IDENTITY, PASSWORD, or OTP (One-Time Password), ⟨id⟩ is a unique identifier for the current network, ⟨text⟩ is a description of the request. In the case of an OTP (One-Time Password) request, it includes the challenge from the authentication server.
A user must supply wpa_supplicant(8) the needed parameters in response to these requests.
For example,
CTRL-REQ-PASSWORD-1:Password needed for SSID foobar > password 1 mysecretpassword Example request for generic token card challenge-response: CTRL-REQ-OTP-2:Challenge 1235663 needed for SSID foobar > otp 2 9876
Options
These options are available:
-
-p path -
Control sockets path. This should match the
ctrl_interfacein wpa_supplicant.conf(5). The default path is /var/run/wpa_supplicant. -
-i ifname -
Interface to be configured. By default, the first interface found in the socket path is used.
-
-h -
Show help.
-
-v -
Show version information.
-
-B -
Run the daemon in the background.
-
-a action_file -
Run in daemon mode, executing the action file based on events from wpa_supplicant(8).
-
-P pid_file -
PID file location.
-
-g global_ctrl -
Use a global control interface to wpa_supplicant(8) rather than the default Unix domain sockets.
-
-G ping_interval -
Wait “ping_interval” seconds before sending each ping to wpa_supplicant(8). See the
pingcommand. - command
-
See available commands in the next section.
Commands
These commands can be supplied on the command line or at a prompt when operating interactively.
status-
Report the current WPA/EAPOL/EAP status for the current interface.
ifname-
Show the current interface name. The default interface is the first interface found in the socket path.
ping-
Ping the wpa_supplicant(8) utility. This command can be used to test the status of the wpa_supplicant(8) daemon.
mib-
Report MIB variables (dot1x, dot11) for the current interface.
help-
Show usage help.
interface[ifname]-
Show available interfaces and/or set the current interface when multiple interfaces are available.
leveldebug_level-
Change the debugging level in wpa_supplicant(8). Larger numbers generate more messages.
license-
Display the full license for
wpa_cli. logoff-
Send the IEEE 802.1X EAPOL state machine into the “logoff” state.
logon-
Send the IEEE 802.1X EAPOL state machine into the “logon” state.
set[settings]-
Set variables. When no arguments are supplied, the known variables and their settings are displayed.
pmksa-
Show the contents of the PMKSA cache.
reassociate-
Force a reassociation to the current access point.
reconfigure-
Force wpa_supplicant(8) to re-read its configuration file.
preauthenticateBSSID-
Force preauthentication of the specified BSSID.
identitynetwork_id identity-
Configure an identity for an SSID.
passwordnetwork_id password-
Configure a password for an SSID.
new_passwordnetwork_id password-
Change the password for an SSID.
- PIN network_id pin
-
Configure a PIN for an SSID.
passphrasenetwork_id passphrase-
Configure a private key passphrase for an SSID.
bssidnetwork_id bssid-
Set a preferred BSSID for an SSID
blacklist[bssid | clear]-
Add a BSSID to the blacklist. When invoked without any extra arguments, display the blacklist. Specifying clear causes
wpa_clito clear the blacklist. list_networks-
List configured networks.
select_networknetwork_id-
Select a network and disable others.
enable_networknetwork_id-
Enable a network.
disable_networknetwork_id-
Disable a network.
add_network-
Add a network.
remove_networknetwork_id-
Remove a network.
set_network[network_id variable value]-
Set network variables. Shows a list of variables when run without arguments.
get_networknetwork_id variable-
Get network variables.
disconnect-
Disconnect and wait for reassociate/reconnect command before connecting.
reconnect-
Similar to
reassociate, but only takes effect if already disconnected. scan-
Request new BSS scan.
scan_results-
Get the latest BSS scan results. This command can be invoked after running a BSS scan with
scan. bss[idx | bssid]-
Get a detailed BSS scan result for the network identified by “bssid” or “idx”.
otpnetwork_id password-
Configure a one-time password for an SSID.
terminate-
Force wpa_supplicant(8) to terminate.
interface_addifname [confname driver ctrl_interface driver_param bridge_name]-
Add a new interface with the given parameters.
interface_removeifname-
Remove the interface.
interface_list-
List available interfaces.
quit-
Exit
wpa_cli.
Releases
49 releases since FreeBSD 6.0-RELEASE; the text changed 33 times.
- 6.0–6.3
- 6.4
- 7.0
- 7.1
- 7.2
- 7.3
- 7.4
- 8.0
- 8.1
- 8.2
- 8.3
- 8.4
- 9.0
- 9.1
- 9.2
- 9.3
- 10.0
- 10.1
- 10.2
- 10.3
- 10.4
- 11.0
- 11.1
- 11.2
- 11.3
- 11.4
- 12.0
- 12.1
- 12.2
- 12.3
- 12.4
- 13.0–13.2
- 13.3–14.1
- 14.2–16.0
-B since FreeBSD 11.1-RELEASE;
-G since FreeBSD 11.1-RELEASE;
-P since FreeBSD 11.1-RELEASE;
-a since FreeBSD 11.1-RELEASE;
-g since FreeBSD 11.1-RELEASE;
-h since FreeBSD 11.1-RELEASE;
-i since FreeBSD 11.1-RELEASE;
-p since FreeBSD 11.1-RELEASE;
-v since FreeBSD 11.1-RELEASE.