Не удается подключиться к WiFi с помощью nmcli, хотя секреты предоставлены.

Вопрос или проблема

Я использую nmcli на ArchLinux (версия 1.14.5dev+17+gba83251bb-1 из официального репозитория пакетов) для подключения к Wi-Fi. Это работает идеально для всех беспроводных сетей, кроме этой сети Vodafone EasyBox.

Попытка активировать подключение с правильным паролем дает мне следующее сообщение об ошибке:

Пароли или ключи шифрования необходимы для доступа к беспроводной сети 'EasyBox-123456'.
Предупреждение: пароль для '802-11-wireless-security.psk' не указан в 'passwd-file', и nmcli не может спросить без опции '--ask'.
Ошибка: Не удалось активировать подключение: требовались секреты, но они не были предоставлены

Тем не менее, 802-11-wireless-security.psk сохранен, как вы можете видеть здесь:

$ nmcli con show EasyBox-123456
connection.id:                          EasyBox-123456
connection.uuid:                        <скрыто>
connection.stable-id:                   --
connection.type:                        802-11-wireless
connection.interface-name:              --
connection.autoconnect:                 да
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (по умолчанию)
connection.multi-connect:               0 (по умолчанию)
connection.auth-retries:                -1
connection.timestamp:                   0
connection.read-only:                   нет
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (по умолчанию)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     неизвестно
connection.lldp:                        по умолчанию
connection.mdns:                        -1 (по умолчанию)
connection.llmnr:                       -1 (по умолчанию)
802-11-wireless.ssid:                   EasyBox-123456
802-11-wireless.mode:                   инфраструктура
802-11-wireless.band:                   --
802-11-wireless.channel:                0
802-11-wireless.bssid:                  --
802-11-wireless.rate:                   0
802-11-wireless.tx-power:               0
802-11-wireless.mac-address:            <скрыто>
802-11-wireless.cloned-mac-address:     --
802-11-wireless.generate-mac-address-mask:--
802-11-wireless.mac-address-blacklist:  --
802-11-wireless.mac-address-randomization:по умолчанию
802-11-wireless.mtu:                    авто
802-11-wireless.seen-bssids:            --
802-11-wireless.hidden:                 нет
802-11-wireless.powersave:              0 (по умолчанию)
802-11-wireless.wake-on-wlan:           0x1 (по умолчанию)
802-11-wireless-security.key-mgmt:      wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg:      открытый
802-11-wireless-security.proto:         --
802-11-wireless-security.pairwise:      --
802-11-wireless-security.group:         --
802-11-wireless-security.pmf:           1 (выключить)
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0:      <скрыто>
802-11-wireless-security.wep-key1:      <скрыто>
802-11-wireless-security.wep-key2:      <скрыто>
802-11-wireless-security.wep-key3:      <скрыто>
802-11-wireless-security.wep-key-flags: 0 (нет)
802-11-wireless-security.wep-key-type:  неизвестно
802-11-wireless-security.psk:           <скрыто>
802-11-wireless-security.psk-flags:     0 (нет)
802-11-wireless-security.leap-password: <скрыто>
802-11-wireless-security.leap-password-flags:0 (нет)
802-11-wireless-security.wps-method:    0 (по умолчанию)
802-11-wireless-security.fils:          0 (по умолчанию)
ipv4.method:                            авто
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (неопределено)
ipv4.ignore-auto-routes:                нет
ipv4.ignore-auto-dns:                   нет
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0 (по умолчанию)
ipv4.dhcp-send-hostname:                да
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     нет
ipv4.may-fail:                          да
ipv4.dad-timeout:                       -1 (по умолчанию)
ipv6.method:                            авто
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       ""
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (неопределено)
ipv6.ignore-auto-routes:                нет
ipv6.ignore-auto-dns:                   нет
ipv6.never-default:                     нет
ipv6.may-fail:                          да
ipv6.ip6-privacy:                       -1 (неизвестно)
ipv6.addr-gen-mode:                     стабильная-приватность
ipv6.dhcp-duid:                         --
ipv6.dhcp-send-hostname:                да
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           нет
proxy.browser-only:                     нет
proxy.pac-url:                          --
proxy.pac-script:                       --

Я пробовал несколько вещей, включая перезагрузку NetworkManager/wpa-supplicant, маршрутизатора и отключение PMF, но ничего не сработало.

Указание --ask запрашивает у меня пароль, но затем выдает то же сообщение об ошибке. Удаление и повторное создание подключения с помощью nm-connection-editor также не сработало. На моем Android-устройстве работает без каких-либо проблем.

Как я могу подключиться к этой сети?

Уже немного поздно, но я нашел потенциальное решение. Согласно документации по nmcli, вы можете подключиться к вашей точке доступа, предоставив файл passwd-file с содержимым:

802-11-wireless-security.psk:secret12345

и командой:

nmcli con up <имя подключения> passwd-file <имя файла>

Надеюсь, это поможет.

Для всех остальных, кто столкнется с этой проблемой, как это было у меня недавно после перехода на нового провайдера, это сообщение также может быть вызвано ошибкой в написании пароля в nm-connection-editor. Это было верно как для Oracle Linux 7, так и для Oracle Linux 8.

Я только что решил это буквально 2 минуты назад:
я сделал скрипт pygui, который запускал nmgui и переходил на правильную вкладку, вводил мой пароль и сохранял, потому что по какой-то причине nmgui работает, но nmcli – нет. Может быть, это поможет и вам? Это медленно и очень ненадежно + нестабильно, но, я полагаю, лучше, чем вводить это каждый раз?

Ответ или решение

Да, проблема с подключением к WiFi-сети через nmcli на ArchLinux, особенно при использовании маршрутизаторов, таких как Vodafone EasyBox, может быть вызвана несколькими факторами. Ниже приведены подробные рекомендации для решения вашей проблемы.

1. Проверка пароля и конфигурации

Первым делом необходимо удостовериться, что пароль для WiFi-сети правильно введён. Часто неправильный ввод пароля является основным источником ошибок подключения:

  • Проверьте, правильно ли вы его ввели в nm-connection-editor.
  • Убедитесь, что нет лишних пробелов или опечаток в пароле.

2. Использование опции --ask

Вы уже упомянули, что использование --ask даёт то же уведомление об ошибке. Оно должно помочь в запросе пароля для подключения. Однако если это не сработает, переходите к следующим шагам.

3. Проверка конфигурации через nmcli

Запустите команду для вывода подробной информации о соединении:

nmcli con show EasyBox-123456

Убедитесь, что все необходимые параметры конфигурации корректны, включая 802-11-wireless-security.psk, который должен быть скрыт "параметром безопасности сети".

4. Использование файла паролей

Как вы уже нашли, nmcli поддерживает использование файла паролей. Создайте текстовый файл, содержащий следующее:

802-11-wireless-security.psk:ваш_пароль

После этого используйте команду:

nmcli con up EasyBox-123456 passwd-file /путь/к/вашему/файлу

Убедитесь, что файл доступен для чтения. Это может помочь передать пароль напрямую через точный файл.

5. Перезапуск службы NetworkManager

Попробуйте перезапустить NetworkManager, чтобы сбросить все активные подключения и заново инициализировать методы подключения:

sudo systemctl restart NetworkManager

6. Проверка PMF и шифрования

Обратите внимание на параметры шифрования вашей сети. Если ваша сеть использует Partner Management Frame (PMF), и это вызывает проблемы, попробуйте его отключить. Также проверьте, правильно ли указаны типы шифрования:

  • WEP
  • WPA/WPA2 PSK

При этом переключите шифрование на наиболее общепринятые настройки, если это возможно.

7. Использование графического интерфейса

Раз вы упомянули о том, что nm-connection-editor не решает проблему, попробуйте временно воспользоваться графическим интерфейсом NetworkManager. Если он позволяет вам подключиться, это может означать, что ваши конфигурации в nmcli некорректны.

8. Логи и диагностика

Для более глубокого понимания проблемы, рассмотрите возможность просмотра логов:

journalctl -u NetworkManager

Ищите ошибки или предупреждения, которые могут дать больше информации о проблеме с подключением.

Заключение

Если ни один из предложенных методов не сработал, возможно, стоит изучить альтернативные решения или обратиться к сообществу ArchLinux за дополнительной помощью. К сожалению, сетевые проблемы могут быть специфичны для конфигурации оборудования или программного обеспечения, и иногда их трудно диагностировать без детальной информации.

Оцените материал
Добавить комментарий

Капча загружается...