Вопрос или проблема
Я пытаюсь использовать метод D-bus AddAndActivate
соединения на интерфейсе org.freedesktop.NetworkManager
, чтобы создать Wi-Fi соединение. Я определенно передаю поле PreSharedKey с паролем, но NetworkManager игнорирует это поле, не удается активировать соединение и запрашивает пароль, когда я пытаюсь использовать nmcli c up <Connection>
.
Есть идеи, как заставить его сохранить пароль?
Посмотрите файлы в директории /etc/NetworkManager/system-connections/
.
Все Wi-Fi соединения хранятся здесь.
Попробуйте вручную добавить пароль.
Вот пример моего конфига:
[connection]
id=<SSID>
uuid=<UUID>
type=wifi
interface-name=<INTERFACE>
permissions=
[wifi]
mac-address-blacklist=
mode=infrastructure
ssid=xxxxx
[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=XXXXXXX <- Введите пароль здесь
[ipv4]
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
[proxy]
Наконец, я нашел решение, как создавать и активировать соединения программно и не запрашивать пароль при активации.
Вместо org.freedesktop.NetworkManager.AddAndActivateConnection()
можно использовать org.freedesktop.NetworkManager.Settings.AddConnection()
, а затем просто вызвать org.freedesktop.NetworkManager.ActivateConnection()
. У вас не будет запрашивать пароль
Ответ или решение
Для решения проблемы, связанной с тем, что NetworkManager не сохраняет пароли Wi-Fi, следует обратить внимание на несколько моментов.
Во-первых, вы правильно отметили, что используете метод D-Bus AddAndActivateConnection
интерфейса org.freedesktop.NetworkManager
. Однако, если вы хотите избежать ввода пароля при активации соединения, рекомендуется использовать метод AddConnection
, а затем активировать соединение через ActivateConnection
. Это поможет сохранить введенный вами пароль.
Вот инструкции по правильной настройке:
-
Создание и сохранение соединения:
Используйте методorg.freedesktop.NetworkManager.Settings.AddConnection()
, чтобы создать новое соединение Wi-Fi. Убедитесь, что вы правильно передаете все необходимые поля, включаяPreSharedKey
, для установки пароля. -
Проверка файлов конфигурации:
После добавления соединения проверьте файлы в каталоге/etc/NetworkManager/system-connections/
. Здесь хранятся все Wi-Fi соединения в системе. Убедитесь, что ваш пароль (psk
) сохранен в секции[wifi-security]
корректно:[wifi-security] auth-alg=open key-mgmt=wpa-psk psk=Ваш_Пароль
-
Активация соединения:
После добавления соединения используйте методorg.freedesktop.NetworkManager.ActivateConnection()
, чтобы активировать соединение. Это должно предотвратить запрос пароля при активации.
Таким образом, использование комбинации методов AddConnection
и ActivateConnection
гарантирует, что пароль будет сохранен, и вам не придется вводить его вручную вновь.
Если проблема все еще не решена, проверьте логи NetworkManager и убедитесь, что нет других ошибок или конфликтов, мешающих правильной работе.