Можно ли предварительно сохранить учетные данные WiFi перед физическим подключением к сети? - PullRequest
0 голосов
/ 07 ноября 2019

Справочная информация

В эти выходные я буду сидеть дома с подругой, и она написала мне свой WiFi SSID вместе с его паролем. Кстати, ее превентивное сообщение мне о деталях WiFi заставило меня задуматься:

Вместо того, чтобы подключаться к ее сети, когда я туда доберусь, я должен просто сохранить учетные данные WiFi на своем ноутбуке (с Ubuntu 19.10) и телефоне(с Android 10). Таким образом, мой ноутбук и телефон могут автоматически подключаться к ее сети WiFi!

Итак, я провел небольшое исследование и понял, что это возможно (по крайней мере, для моего ноутбука; я думаю, что на Android япотребовался бы доступ с правами суперпользователя), но все еще остаются некоторые вопросы.

Из моего исследования для Ubuntu 19.10 представляется, что сетевые учетные данные хранятся в следующем каталоге:

/etc/NetworkManager/system-connections

,и каждый файл представляет учетные данные. Например, одно конкретное соединение, которое у меня есть в этой папке, etaoin-shrdlu, имеет следующее содержимое:

$ sudo cat /etc/NetworkManager/system-connections/etaoin-shrdlu.nmconnection

[connection]
id=etaoin-shrdlu
uuid=515ab528-986b-4bb8-97fe-f744beaa0f2f
type=wifi
interface-name=wlp3s0
permissions=

[wifi]
mac-address-blacklist=
mode=infrastructure
ssid=etaoin-shrdlu

[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=nice try hackers

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

[proxy]

Этот файл кажется относительно простым, то есть выглядит как единственное, что мне нужноможно изменить:

  • Имя файла.
  • Значение id.
  • Значение uuid (при чтении в Интернете это может быть сгенерировано случайным образом). ).
  • Значение ssid.
  • Значение psk.

Предположительно, будет использоваться схема управления ключами wpa-psk.

Кроме того, я обнаружил, что есть еще один файл, который, кажется, принимает участие в этой церемонии:

/run/NetworkManager/devices/3

, который имеет следующую конфигурацию:

$ sudo cat /run/NetworkManager/devices/3

[device]
managed=true
connection-uuid=515ab528-986b-4bb8-97fe-f744beaa0f2f
route-metric-default-effective=600

,где connection-uuid - это то же uuid, что указано в файле учетных данных.

Тестирование

Итак, вот что я попробовал:

  1. Забудьте о сети etaoin-shrdlu.
  2. Включить режим полета.
  3. Создайте следующий файл /etc/NetworkManager/system-connections/etaoin-shrdlu.nmconnection (это будетранее были удалены после забывания сети).
  4. Поместить в файл то же содержимое, что и предыдущие etaoin-shrdlu.nmconnection, с uuid, измененным на 630b5230-48cb-4929-9777-fa0f30399810.
  5. Изменить предыдущую версию/run/NetworkManager/devices/3 чтобы иметь uuid из 630b5230-48cb-4929-9777-fa0f30399810.
  6. Выключить режим полета.
  7. Подождите и надейтесь, что это сработало ...

Ирезультат? Не работает.

Вопросы

  1. Что я не так делаю?
  2. Что такое uuid ключ используется для? Почему это нормально для случайного генерирования?
  3. Имеет ли значение для ключа psk какие-либо ограничения для разрешенных символов?
...