139 votes

Comment se connecter à un réseau wifi WPA en utilisant la ligne de commande ?

Donc, en gros, j'aimerais utiliser iwconfig pour me connecter à mon réseau wifi lorsque je ne suis pas dans X. Mais je ne vois pas de moyen de le faire dans la page de manuel. Une idée ?

133voto

Rinzwind Points 270388

iw (list/config) ne peut gérer que le WEP.

Vous avez besoin de la wpasupplicant qui fournit le wpa_supplicant et l'installer si nécessaire via la commande sudo apt-get install wpasupplicant .

Vous mettez votre SSID et votre mot de passe dans /etc/wpa_supplicant.conf (nécessite sudo).

Ejemplo:

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

En supposant que votre interface est wlan0 vous pouvez vous connecter avec :

sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D wext
sudo dhclient wlan0

"wext" est un pilote et il sera spécifique à chaque carte ; référez-vous à wpa_supplicant -h . Exemples :

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.

85voto

Mike Brady Points 58

Ce lien montre tout et a bien fonctionné pour moi : http://linux.icydog.net/wpa.php

Je copie le contenu ici, pour que nous l'ayons, au cas où ce site se déconnecte.

Ligne de commande WPA

Il arrive que vous soyez en ligne de commande et que vous n'ayez pas accès aux outils de mise en réseau de l'interface graphique, mais que votre point d'accès soit sécurisé par le WPA. Que faites-vous ?

En supposant que votre carte sans fil fonctionne réellement (i.e. iwconfig peut la voir et interagir avec elle), l'utilisation de wpa_supplicant est en fait assez simple. Installation de wpa_supplicant

La plupart des distributions actuelles ont wpa_supplicant installé par défaut. Si vous disposez des commandes wpa_passphrase et wpa_supplicant, vous pouvez y aller. Sinon, vous devrez installer le paquetage en faisant quelque chose comme (pour Ubuntu) :

$ sudo apt-get install wpasupplicant

Ou (pour Fedora) :

# yum install wpa_supplicant

Ou la commande correspondant à votre distribution.

Génération du fichier de configuration

Maintenant que wpa_supplicant est installé, nous allons créer son fichier de configuration. Une fois que vous connaissez le SSID et la phrase de passe WPA, tout ce que vous avez à faire est d'exécuter :

$ wpa_passphrase myrouter mypassphrase > wpa.conf

Bien entendu, remplacez "myrouter" par le SSID de votre routeur, "mypassphrase" par votre phrase de passe WPA et "wpa.conf" par le fichier dans lequel vous souhaitez stocker la configuration. Ce nom de fichier ne doit pas nécessairement suivre un format particulier ou avoir une extension particulière.

Alternativement, pour éviter de taper la phrase de passe sur la ligne de commande (afin qu'elle ne soit pas enregistrée dans l'historique du Shell), vous pouvez spécifier juste le SSID sur la ligne de commande. wpa_passphrase attendra que vous tapiez la phrase de passe suivie de la touche entrée :

$ wpa_passphrase myrouter > wpa.conf
mypassphrase

Vous devriez vous retrouver avec un fichier ressemblant à ceci :

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

Se connecter

Nous allons maintenant exécuter wpa_supplicant pour nous connecter au réseau sans fil. Tout d'abord, si votre routeur diffuse son SSID (ils le font tous par défaut), vous voulez probablement vous assurer que votre carte sans fil peut le voir :

$ iwlist scan

Vous devrez peut-être l'exécuter en tant que root pour forcer un rafraîchissement.

Ensuite, vous devrez connaître trois informations :

  1. Quels pilotes sans fil wpa_supplicant utiliser pour votre carte. Exécution de wpa_supplicant --help liste les différents pilotes qu'il possède (sous "drivers :"). Depuis la version 0.5.8, les choix utiles sont les suivants : wext , hostap , madwifi , atmel , ndiswrapper et ipw (ipw est pour les anciens noyaux seulement ; >=2.6.13 devrait utiliser wext). Si vous ne trouvez pas de correspondance spécifique pour votre carte, essayez wext, car c'est une sorte de fourre-tout.
  2. Le périphérique réseau de votre carte. C'est généralement eth1 ou wlan0, mais si vous n'êtes pas sûr, vous pouvez simplement exécuter iwconfig . Il signalera "aucune extension sans fil" pour les dispositifs non sans fil et affichera quelques données pour tout dispositif sans fil.
  3. Le chemin d'accès au fichier de configuration que vous avez créé à l'étape précédente.

Maintenant que vous avez ces données, exécutez (en tant que root) :

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

Il n'y a pas d'espace entre les options et les paramètres. N'incluez pas les parenthèses car je les ai ajoutées pour plus de clarté. Par exemple, pour mon ordinateur portable, cela ressemble à ceci :

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

Vous pouvez également l'exécuter en arrière-plan en utilisant la fonction -B afin qu'il n'occupe pas votre console.

Maintenant, vous êtes associé au réseau.

Se connecter

Pour vous connecter, vous devez obtenir une adresse IP d'une manière ou d'une autre. La plupart des gens voudront simplement obtenir une IP dynamique à partir d'un serveur DHCP, probablement celui intégré au routeur. (Je ne vais pas couvrir la configuration d'une IP statique et d'une table de routage car c'est une bête en soi).

Pour obtenir un bail DHCP, libérez d'abord tous les baux auxquels vous vous accrochez encore (en tant que root) :

# dhclient -r

Demandez ensuite un nouveau bail (en remplaçant bien sûr eth1 par le nom de votre périphérique réseau, le même que celui que vous avez utilisé dans la section précédente) :

# dhclient eth1

Vous avez maintenant une IP, du moins en théorie. Bon surf !

11voto

David Points 213

Debian et d'autres distributions font tourner wpa_suplicant comme un service par défaut afin de gérer les réseaux wifi. wpa_suplicant peut être géré par différents clients/frontaux tels que l'interface graphique du gestionnaire de réseau. Ceci est mieux expliqué dans ce document wiki debian .

wpa_cli est le client wpa_suplicant en ligne de commande pour gérer les réseaux wifi.

Modifier : Je viens de trouver ce post qui explique comment utiliser nmcli et il est bien meilleur que wpa_cli car il est compatible avec le gestionnaire de réseau GUI et leurs paramètres et réseaux wifi sauvegardés.

Exemple d'utilisation de wpa_cli :

Vérifiez que j'ai déjà une interface réseau compatible avec le wifi :

# 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

Vérifiez si le processus wpa_suplicant est en cours d'exécution :

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

Entrez dans le mode interactif du client wpa :

# wpa_cli

Liste des points d'accès disponibles :

> scan
> scan_results

... et vous obtenez quelque chose comme ça :

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
...

Ajoutez votre PA :

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

Sélectionnez-le comme courant :

> enable_network 0

Branchez-vous dessus :

> reconnect

Vérifiez l'état :

> status

Quitter wpa_cli :

> quit

A partir du Shell, demandez à DHCP une IP et des paramètres de réseau :

# dhclient -r
# dhclient wlan0

3voto

dogbane Points 4201

Toutes les réponses suggérant wpa_supplicant sont fausses. Oui, il peut vous connecter au réseau WPA, mais c'est une mauvaise solution à long terme car il sera très difficile à maintenir et ne sera pas compatible avec une connexion filaire. Lire cette réponse et vous rendre la vie plus facile en utilisant Network Manager depuis la ligne de commande. J'ai perdu des heures à essayer de configurer wpa_supplicant, puis j'ai essayé nmcli et ça a "juste marché".

2voto

Jash Jacob Points 4212

D'abord, remontez votre carte si elle ne fonctionne pas :

ifconfig wlan0 up

Réglez les paramètres en fonction de votre réseau

iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X