NetworkManager подключается к WiFi только когда я передаю –ask (но у него уже есть пароль)

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

У меня есть подключение к Wi-Fi, настроенное через NetworkManager на Raspberry Pi 4, с использованием последней версии операционной системы Rasbian (bookworm):

me@hostname:~ $ sudo cat /etc/NetworkManager/system-connections/my_wifi_ssid.nmconnection
[connection]
id=my_wifi_ssid
uuid=30f65701-8eb3-4986-a61b-26c176087d4b
type=wifi

[wifi]
mode=infrastructure
ssid=my_wifi_ssid

[wifi-security]
key-mgmt=wpa-psk
psk=[длинная строка в шестнадцатеричном формате, содержащая пароль от Wi-Fi]

[ipv4]
method=auto

[ipv6]
addr-gen-mode=default
method=auto

[proxy]
me@hostname:~ $

Теперь, если я пытаюсь активировать это соединение с помощью nmcli, он жалуется, что не был указан пароль, и не может спросить меня о пароле, потому что я не передал --ask:

me@hostname:~ $ sudo nmcli conn up my_wifi_ssid
Пароли или ключи шифрования необходимы для доступа к беспроводной сети 'my_wifi_ssid'.
Предупреждение: пароль для '802-11-wireless-security.psk' не указан в 'passwd-file', и nmcli не может спросить без параметра '--ask'.
Ошибка: Активация соединения не удалась: требовались секреты, но они не были предоставлены
Подсказка: используйте 'journalctl -xe NM_CONNECTION=30f65701-8eb3-4986-a61b-26c176087d4b + NM_DEVICE=wlan0', чтобы получить больше информации.

Тем не менее, если я позволяю nmcli спросить у меня пароль, все работает, и (обычно) он не спрашивает меня:

me@hostname:~ $ sudo nmcli conn up my_wifi_ssid --ask
Соединение успешно активировано (активный путь D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/44)

Я уже видел подобное поведение, когда он действительно спрашивал меня; в этом случае пароль предварительно заполнен, и если я просто нажму Enter, соединение успешно устанавливается.

В чем дело?

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

Проблема, с которой вы столкнулись, касается аутентификации Wi-Fi-соединения в NetworkManager на Raspberry Pi 4 с установленной ОС Raspbian (bookworm). Рассмотрим причины, по которым Connection Manager не может активировать соединение без явного указания пароля, несмотря на его наличие в конфигурационном файле.

Анализ проблемы

  1. Структура файла конфигурации:
    Ваша конфигурация Wi-Fi выглядит корректно, и в ней действительно прописан параметр psk с вашим паролем в секции [wifi-security]. Однако важно отметить, что NetworkManager требует, чтобы такие секретные данные, как пароли, были прописаны в passwd-file.

  2. Отсутствие пароля в passwd-file:
    Сообщение об ошибке указывает на то, что NetworkManager не смог найти пароль для доступа к сети Wi-Fi, так как он не был предоставлен в passwd-file. Поэтому для внешних вызовов (например, с помощью nmcli) NetworkManager не может использовать данные, хранящиеся только в конфигурационном файле.

  3. Опция --ask:
    Используя опцию --ask, вы предоставляете возможность NetworkManager запросить у вас пароль, даже если он уже хранится в конфигурации. При этом, если пароль оказывается в конфигурационном файле, NetworkManager может автоматически подставить его, и вам остается только нажать Enter.

Возможные решения

  1. Изменение конфигурации:
    Чтобы избежать необходимости каждый раз вводить --ask, попробуйте изменить конфигурационный файл, добавив пароли в passwd-file. Например, можно создать файл в /etc/NetworkManager/system-connections и указать в нём параметры:

    [wifi-security]
    key-mgmt=wpa-psk
    psk=ваш_пароль

    Убедитесь, что файл имеет правильные права доступа (например, chmod 600), чтобы избежать утечек информации.

  2. Проверка прав доступа:
    Убедитесь, что файл с конфигурацией имеет корректные права доступа и принадлежит пользователю, под которым работает NetworkManager (обычно это root). Неверный доступ может привести к невозможности NetworkManager получить данные.

  3. Логирование и диагностика:
    Вы получили подсказку использовать journalctl для получения дополнительной информации. Это отличное решение. Запустите команду:

    journalctl -xe NM_CONNECTION=30f65701-8eb3-4986-a61b-26c176087d4b + NM_DEVICE=wlan0

    Это позволит вам увидеть детализированные логи и другие подсказки по вашей проблеме.

Заключение

Проблема активации Wi-Fi через NetworkManager на Raspberry Pi связана с тем, что программа ожидала пароль в формате файла passwd-file, а не только в конфигурационном файле. Изменив конфигурацию и права доступа, вы можете устранить необходимость в использовании параметра --ask, что упростит процесс подключения. Если после всех предложенных корректировок проблема остается нерешенной, дальнейшее исследование логов может дать больше информации для решения.

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

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