Como eu me conecto a uma rede Wi-Fi WPA usando a linha de comando?

101

Então, basicamente, eu gostaria de usar o iwconfig para se conectar à minha rede Wi-Fi quando eu não estiver dentro do X. Mas eu não vejo uma maneira de fazer isso na página do manual. Alguma idéia?

    
por Ken Kinder 17.05.2012 / 17:48

9 respostas

95

iw (list / config) só pode manipular WEP.

Você precisa do pacote wpasupplicant que fornece o comando wpa_supplicant , instale se necessário por meio de sudo apt-get install wpasupplicant .

Você coloca seu SSID e senha em /etc/wpa_supplicant.conf .

Exemplo:

network={
    ssid="ssid_name"
    psk="password"
}

Assumindo que sua interface é wlan0, você pode se conectar com:

sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext
sudo dhclient wlan0

"wext" é um driver e isso será específico para cada cartão; consulte wpa_supplicant -h . Exemplos:

hostap (default) Host AP driver (Intersil Prism2/2.5/3). (this can also be used with Linuxant DriverLoader).
hermes Agere Systems Inc. driver (Hermes-I/Hermes-II).
madwifi MADWIFI 802.11 support (Atheros, etc.).
atmel ATMEL AT76C5XXx (USB, PCMCIA).
wext Linux wireless extensions (generic).
ndiswrapper Linux ndiswrapper.
broadcom Broadcom wl.o driver.
ipw Intel ipw2100/2200 driver.
wired wpa_supplicant wired Ethernet driver
roboswitch wpa_supplicant Broadcom switch driver
bsd BSD 802.11 support (Atheros, etc.).
ndis Windows NDIS driver.
    
por Rinzwind 17.05.2012 / 17:57
69

Este link mostra tudo e funcionou bem para mim: link

Estou copiando o conteúdo aqui, assim, temos, caso esse site fique off-line.

Linha de comando WPA

Às vezes, você estará em uma linha de comando sem acesso a ferramentas de rede GUI, mas seu ponto de acesso é protegido com WPA. O que você faz?

Assumindo que a sua placa sem fio realmente funciona (ou seja, o iwconfig pode ver e interagir com ela), o uso do wpa_supplicant é realmente muito simples. Instalando o wpa_supplicant

Atualmente, a maioria das distribuições tem o wpa_supplicant instalado por padrão. Se você tem os comandos wpa_passphrase e wpa_supplicant disponíveis, então você está pronto para ir. Caso contrário, você precisará instalar o pacote fazendo algo como (para o Ubuntu):

$ sudo apt-get install wpasupplicant

Ou (para o Fedora):

# yum install wpa_supplicant

Ou qualquer que seja o comando para sua distro.

Como gerar o arquivo de configuração

Agora que o wpa_supplicant está instalado, criaremos seu arquivo de configuração. Depois de saber a senha SSID e WPA, tudo o que você precisa fazer é executar:

$ wpa_passphrase myrouter mypassphrase > wpa.conf

Claro, substitua "myrouter" pelo SSID do seu roteador, "mypassphrase" pela senha WPA e "wpa.conf" pelo arquivo em que você deseja armazenar a configuração. Esse nome de arquivo não precisa seguir um formato específico ou ter uma extensão específica.

Como alternativa, para evitar digitar a frase secreta na linha de comando (para que ela não seja salva no histórico do shell), você pode especificar apenas o SSID na linha de comando. wpa_passphrase espera que você digite a frase secreta seguida por:

$ wpa_passphrase myrouter > wpa.conf
mypassphrase

Você deve acabar com um arquivo assim:

network={
    ssid="myrouter"
    #psk="mypassphrase"
    psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}

Conectando-se

Agora, vamos executar o wpa_supplicant para conectar-se à rede sem fio. Primeiro, se o seu roteador transmite seu SSID (todos fazem por padrão), você provavelmente quer ter certeza de que sua placa wireless pode realmente vê-lo:

$ iwlist scan

Você pode ter que executar isso como root para forçar uma atualização.

Em seguida, você precisará conhecer três informações:

  1. Quais drivers sem fio do wpa_supplicant devem ser usados para o seu cartão. Executando o wpa_supplicant --help lista os diferentes drivers que ele possui (em "drivers:"). A partir de 0.5.8, as opções úteis são: wext, hostap, madwifi, atmel, ndiswrapper e ipw (ipw é apenas para kernels antigos; > = 2.6.13 deve usar wext). Se você não encontrar uma correspondência específica para o seu cartão, tente wext, pois esse é o tipo de pega-tudo.
  2. O dispositivo de rede do seu cartão. Isso geralmente é eth1 ou wlan0, mas se você não tiver certeza, pode simplesmente executar o iwconfig. Ele informará "sem extensões sem fio" para dispositivos sem fio e exibirá alguns dados para qualquer dispositivo sem fio.
  3. O caminho para o arquivo de configuração que você criou na etapa anterior.

Agora que você tem esses dados, execute (como root):

# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]

Não há espaços entre as opções e os parâmetros. Não inclua os colchetes, pois acabei de adicioná-los para maior clareza. Por exemplo, para meu laptop, é assim:

# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf

Você também pode executá-lo em segundo plano usando a opção -B para que ele não ocupe seu console.

Agora você está associado à rede.

Como ficar on-line

Para realmente ficar online, você terá que obter um IP de alguma forma. A maioria das pessoas só vai querer obter um IP dinâmico de um servidor DHCP, provavelmente aquele construído no roteador. (Eu não vou cobrir a definição de um IP estático e tabela de roteamento porque isso é uma fera em si.)

Para obter uma concessão de DHCP, primeiro libere todas as concessões em que você ainda está se mantendo (como root):

# dhclient -r

Em seguida, peça um novo contrato (obviamente, substitua eth1 pelo nome do seu dispositivo de rede, o mesmo que você usou na seção anterior):

# dhclient eth1

Agora você tem um IP, pelo menos em teoria. Surf feliz!

    
por Alexandre Schmidt 08.04.2013 / 21:44
5

O Debian e outras distribuições têm o wpa_suplicant sendo executado como um serviço por padrão para gerenciar as redes wifi. O wpa_suplicant pode ser manipulado por diferentes clientes / front-ends, como a GUI do gerenciador de rede. Isso é melhor explicado neste debian wiki .

wpa_cli é o cliente da linha de comando wpa_suplicant para gerenciar as redes wifi.

Editar : Acabei de encontrar este post explicando como usar o nmcli e é muito melhor do que wpa_cli, uma vez que é compatível com o GUI Network Manager e suas configurações e redes Wi-Fi salvas.

Exemplo de uso de wpa_cli :

Verifique se eu já tenho uma interface de rede habilitada para Wi-Fi:

# iwconfig
wlan0     IEEE 802.11bgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

Verifique se o processo wpa_suplicant está em execução:

# ps -e | grep wpa
1881 ?        00:00:07 wpa_supplicant

Entre no modo interativo do cliente wpa:

# wpa_client

Relacione os pontos de acesso disponíveis:

> scan
> scan_results

... e você tem algo assim:

bssid / frequency / signal level / flags / ssid
e0:60:66:7c:81:7f       2417    -66     [WPA2-PSK-CCMP][ESS]    vodafone817E
e0:60:66:61:83:4b       2452    -76     [WPA2-PSK-CCMP][WPS][ESS]       vodafone834A
f8:8e:85:c5:65:c2       2462    -76     [WPA-PSK-CCMP+TKIP][WPS][ESS]   MOVISTAR_65C1
a8:d3:f7:46:0c:be       2472    -83     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]       Orange-0CBC
...

Adicione seu AP:

> add_network
> set_network 0 ssid "vodafone817E"
> set_network 0 psk "my-pass-phrase"

Selecione como atual:

> enable_network 0

Conecte-se a ele:

> reconnect

Verifique o status:

> status

Saia do wpa_cli:

> quit

No shell, solicite o DHCP para um IP e configurações de rede:

# dhclient -r
# dhclient wlan0
    
por David 06.10.2016 / 18:12
3

Primeiro, prepare seu cartão se não estiver executando:

ifconfig wlan0 up

Defina os parâmetros de acordo com sua rede

iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY
    
por LnxSlck 17.05.2012 / 17:54
2

Na verdade, existe uma maneira de fazer isso usando o NetworkManager, se você tiver o pacote checkbox instalado.

sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY

(Crédito: bug 923836 , que surgiu nas minhas pesquisas sobre o assunto.)

    
por zigg 17.05.2012 / 18:32
2

Todas as respostas sugerindo wpa_supplicant estão erradas. Sim, isso pode conectá-lo à rede WPA, mas é uma solução ruim a longo prazo porque será muito difícil de manter e não funcionará bem com uma conexão com fio. Leia esta resposta e facilite a sua vida usando o Network Manager a partir da linha de comando. Eu perdi horas tentando configurar o wpa_supplicant, tentei o nmcli e ele "apenas funcionou".

    
por Cerin 26.07.2015 / 00:23
2

Você pode usar o VSWM - Very Simple Wireless Manager. Você coloca seus APs conhecidos em um arquivo cfg simples (/etc/vswm.cfg) e quando você executa vswm , verifica as redes disponíveis e conecta seu cartão com o primeiro que aparece em /etc/vswm.cfg.

O VSWM está disponível no link . Aqui está uma seleção de como o arquivo de configuração vswm.cfg se parece:

[global]

dev = wlan0
dns = ["4.2.2.1","8.8.8.8"]

[wlan0-0]

ssid = Network1
psk = netpassword
protocol = WPA
net = dhcp

[wlan0-1]

ssid = Network2
protocol = WEP
net = static
address = 192.168.0.15/24

Nos bastidores, ele usa as ferramentas de linha de comando padrão: iwlist, wpa_supplicant, iwconfig, dhclient ... Apenas ele automatiza o trabalho.

    
por Diogo Melo 18.09.2016 / 05:42
1

Eu tive problemas para usar wpa_supplicant diretamente para acessar uma rede sem fio. Minha ID de rede e senha geraram erros quando usei o arquivo wpa_supplicant.conf na linha de comando wpa_supplicant , por exemplo,

sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B

Consegui contorná-lo com wpa_cli . A seqüência de comandos que eu tive que usar, desde que eu estou usando um driver do Windows com o ndiswrapper do Linux, é:

sudo modprobe ndiswrapper
sudo iwconfig wlan0 essid "<My Network ID>" mode managed
sudo wpa_cli identity "<My Network ID>" password "<My password>"

Eu tinha a rede configurada adicionando-a na seção sem fio da rede na GUI, então que eu poderia clicar no ícone da rede com ou sem fio e selecionar o provedor sem fio (o que às vezes era necessário para completar o login).

    
por John 03.12.2013 / 07:46
0

O nmcli é a versão da linha de comando do aplicativo gerenciador de rede padrão no Ubuntu.

Algumas das vantagens são que ele usa a configuração que você já tem da interface gráfica e não precisa de acesso root.

Você pode executar nmcli para mostrar as opções disponíveis.

Exemplo para se conectar a um wifi chamado MYESSID:

    nmcli c up MYESSID   
    
por desgua 31.01.2018 / 13:46