Use Network-Manager para conectarse a un punto de acceso WiFi en la línea de comandos

Me gustaría conectarme a un punto de acceso inalámbrico desde la línea de comandos. Idealmente, solo necesitaría el nombre de AP. Pero la dirección del hardware también funcionaría.

Sé que puedo usar nmcli para conectarme a una conexión de red administrada, pero en mi caso, es posible que el punto de acceso aún no esté configurado para Network-Manager (vea la diferencia entre la salida de nm-tool y nmcli con ).

Ejemplo de salida de nmcli :

 Auto pwln 3a3d62b1-bbdf-4f76-b4d2-c211fd5cfb03 802-11-wireless [...] Wired Network aa586921-accf-4932-98c4-c873c310f08e 802-3-ethernet [...] Cisco-UDP Uni 7f94847b-04dc-40b7-9955-5246fb77cc65 vpn [...] T-mobile (D1) 867f345a-cbbf-4bd4-b883-a5e5ae0932f0 gsm [...] 

Ejemplo de salida de nm-tool :

 State: connected - Device: eth1 [Auto pwln] ---------------------------------------------------- [...] Wireless Access Points (* = current AP) *pwln: Infra, [...], Freq 2472 MHz, Rate 54 Mb/s, Strength 80 WPA WPA2 WLAN: Infra, [...], Freq 2422 MHz, Rate 54 Mb/s, Strength 20 WPA WPA2 [...] 

¿Cómo me conecto a un punto de acceso que NM pueda conocer o no?

Extra: descubrir si la conexión necesita una contraseña, y enviarla a la línea de comandos también sería genial (es decir, sería bueno que el administrador de la red no abriera ningún diálogo de llavero o errores en la gui)

Puedes usar cnetworkmanager para esto.

Editar:

Después de algunas investigaciones, queda claro que es imposible ejecutar dos “proveedores de configuración de usuario” (una aplicación que escucha en una determinada dirección de dbus) al mismo tiempo, y cnetworkmanager debe actuar como tal “proveedor de configuración” (al menos hasta el se establece la conexión).

Ahora, lo que puede hacer es agregar la información para la conexión a gconf bajo la clave /system/networking/connections (puede hacerlo desde la línea de comandos o un script), y luego use dbus o una herramienta de línea de comandos como cnetworkmanager o nmcli para conectarse a ella. Tal vez también deba agregar la clave al conjunto de claves del usuario (para evitar las ventanas emergentes de contraseña).

Pero, por supuesto, eso no funcionará en un escritorio que use otro cliente NM que el applet nm (por ejemplo, KDE). Tendrías que averiguar cómo proporcionar una configuración para ellos también …

Edición 2:

Parece que podría ser posible a través de org.freedesktop.NetworkManagerUserSettings en el sistema DBus, pero todo esto está IMO mal documentado …

Es posible que desee leer acerca de los ajustes de configuración y la especificación de la interfaz DBus .

Y aquí hay un ejemplo relevante (aunque quizás desee configurar una conexión de usuario en lugar de una conexión de sistema)

Puede hacerlo directamente usando nmcli , incluso si la conexión aún no está configurada en Network Manager:

 nmcli dev wifi con "myssid" password "myssidpassword" 

Si no desea tener la contraseña inalámbrica almacenada en su historial en versiones recientes (tal vez más reciente que la mencionada a continuación), puede agregar --ask para que nmcli le solicite la información faltante que necesita.

 nmcli --ask device wifi connnect "myssid" 

Esta instalación se agregó en Network Manager 0.9.6, por lo que solo funciona en Ubuntu 12.10 o posterior.

También puede obtener una lista de puntos de acceso disponibles con:

 nmcli dev wifi list 

Puedes usar iwconfig (wifitools) para encriptación wep, o wpa_supplicant para wpa y wep, también usas wicd-curses si buscas algo más fácil, buena suerte =)

Puedes revisar iwconfig y iwlist:

  • iwconfig manipula los parámetros inalámbricos básicos
  • iwlist permite iniciar el escaneo y listar frecuencias, tasas de bits, claves de cifrado …

Hay muchas opciones. Echa un vistazo a Wireless Tools for Linux para más.