Как подключиться к беспроводной сети 802.1x через nmcli

11

Я могу подключиться к сетям 802.1 через nm-applet. Мне не нравится это делать, так как большую часть времени я работаю без NM, и я не хотел бы загружать его только для подключения к беспроводной сети.

При подключении к сети 802.1 я получаю следующую ошибку:

Error: Failed to add/activate new connection: (32) Failed to determine AP security information

Я не знаю, как обойти это, поскольку nmcli, похоже, не предоставляет никаких средств для определения типа сети.

Tensai
источник
вы получаете это сообщение об ошибке при попытке создать новый профиль подключения?
Рабин
@Rabin Это новое соединение. Я не пытался создать новый профиль, или понять , в каком контексте вы используете новый профиль соединения в Я просто пытаюсь подключиться к нему с помощью nmcli d WiFi соединять Eduroam ......
Tensai
Я использую скрипт, который вызывает nmcli, как это, nmcli con up 'connection-uuid'но я должен сначала установить это соединение в моем NetworkManager.
Рабин
Да, это была моя проблема. Если я раньше не подключался к сети, как мне это сделать. Есть много ситуаций, когда я не могу запустить пользовательский интерфейс. Я подключился к сетям такого типа, прежде чем использовать wpa-supplicant и настроить файлы конфигурации вручную
tenai
Как сказал @tensai, возможно, имеет смысл вручную настроить nmcli con editкоманду.
feverDream

Ответы:

15

Вы можете создать соединение WPA2 Enterprise с помощью nmcliкомандной строки, например (замените собственное имя устройства wifi wlp3s0и т. Д.):

nmcli connection add \
 type wifi con-name "MySSID" ifname wlp3s0 ssid "MySSID" -- \
 wifi-sec.key-mgmt wpa-eap 802-1x.eap tls 802-1x.identity "USERNAME" \
 802-1x.ca-cert ~/ca.pem 802-1x.client-cert ~/cert.pem \
 802-1x.private-key-password "..." 802-1x.private-key ~/key.pem

Затем он будет указан в списке nmcli connectionи может быть вызван с помощью nmcli connection up MySSID.

Аутентификация с помощью имени пользователя и пароля

(Этот раздел был любезно добавлен автором, редактирующим сообщение :)

Или, если вы используете аутентификацию имени пользователя / пароля (вероятно, через RADIUS), вы можете использовать команду ниже, чтобы добавить ее (используйте правильный 802-1x.eapпараметр для вашей сети, пример, ttlsприведенный ниже, не требует определения сертификата), а затем используйте --askпри первом подключении сохраните пароль в файле подключения.

nmcli connection add \
 type wifi con-name "MySSID" ifname wlp3s0 ssid "MySSID" -- \
 wifi-sec.key-mgmt wpa-eap 802-1x.eap ttls \
 802-1x.phase2-auth mschapv2 802-1x.identity "USERNAME" 

Если вы используете опцию имени пользователя / пароля, вы должны добавить ее --askпосле nmcliпервого запуска, чтобы сохранить пароль, не оставляя его в истории команд. Он выдаст вам сообщение об ошибке, говорящее об этом, когда вы попытаетесь вызвать его иначе. При использовании вам, вероятно, будет предложено указать дополнительные настройки беспроводной сети --ask, вы можете ввести noих, если вам не нужно указывать статический IP-адрес, и в этом случае ответьте yesза эту опцию и укажите правильную информацию, а в будущем вам не нужно будет использовать --askесли ваш пароль не изменится.

Исследуя NMCL по своему усмотрению

В общем, пространство возможных nmcliнастроек можно изучить, добавив слова asdf.asdf asdfв конец командной строки, чтобы получить сообщение об ошибке, в котором указано, какие слова являются возможными заменами первых asdf. Выберите один, и тогда вы получите сообщение об ошибке со списком возможных под-настроек для второго asdf. Выберите один из них, и вы увидите возможные настройки:

$ nmcli connection add ... asdf.asdf asdf
Error: invalid or not allowed setting 'asdf': 'asdf' not among [connection, 802-11-wireless (wifi), 802-11-wireless-security (wifi-sec), 802-1x, ipv4, ipv6].
$ nmcli connection add ... wifi-sec.asdf asdf
Error: invalid property 'asdf': 'asdf' not among [key-mgmt, wep-tx-keyidx, auth-alg, proto, pairwise, group, leap-username, wep-key0, wep-key1, wep-key2, wep-key3, wep-key-flags, wep-key-type, psk, psk-flags, leap-password, leap-password-flags].
$ nmcli connection add ... wifi-sec.proto asdf
Error: failed to modify wifi-sec.proto: 'asdf' not among [wpa, rsn].

Перебирая все под-настройки, я смог собрать воедино успешную командную строку, показанную выше. Единственным сюрпризом было то, что пароль должен предшествовать пути к закрытому ключу - если вы введете пароль позже, он не будет действовать!

Брэндон Роудс
источник
7

nmcli Wifi

Получить статус Wifi

nmcli radio wifi

Включить или выключить Wi-Fi

nmcli radio wifi <on|off>

Список доступных точек доступа (AP) для подключения

nmcli device wifi list

Обновить предыдущий список

nmcli device wifi rescan

Создать новое подключение к открытой точке доступа

nmcli device wifi connect <SSID|BSSID>

Создать новое подключение к защищенной паролем точке доступа

nmcli device wifi connect <SSID|BSSID> password <password>

источник: http://fedoraproject.org/wiki/Networking/CLI#Wifi

Рабин
источник
1
Я знаю , что все эти варианты :( Ни один из них не кажется , применимы для 802.1X сетей , хотя , конечно это объясняется так или иначе , так как я могу подключиться через апплет..
Tensai
@tensai, у меня та же проблема: «Ошибка: не удалось добавить / активировать новое соединение: (32) 802-11-wireless-security.psk: свойство недействительно»
tslater
@tensai, что вы можете увидеть в выводе journalctl?
Рабин
Ничто в этом ответе не имеет никакого отношения к 802.1X. Мне трудно понять, насколько это актуально для вопроса.
Чарльз Даффи
6

NetworkManager может генерировать профили WPA2 Enterprise с графическим интерфейсом. nmcli и  nmtui не поддерживают это, но могут использовать существующие профили.

Подробнее о подключении к сетям WPA2_Enterprise

Hrust
источник
nmcliне позволяет сложные пароли, содержащие специальные символы; однако, nmtuiпозволяет это и многое другое :) - Спасибо @hurst
Ахиллес
2

Похоже, что nmcli не может подключиться к корпоративным сетям WPA2. Сети должны быть настроены вручную или созданы с помощью различных апплетов.

Tensai
источник