Справочная информация
В эти выходные я буду сидеть дома с подругой, и она написала мне свой 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
, что указано в файле учетных данных.
Тестирование
Итак, вот что я попробовал:
- Забудьте о сети
etaoin-shrdlu
. - Включить режим полета.
- Создайте следующий файл
/etc/NetworkManager/system-connections/etaoin-shrdlu.nmconnection
(это будетранее были удалены после забывания сети). - Поместить в файл то же содержимое, что и предыдущие
etaoin-shrdlu.nmconnection
, с uuid
, измененным на 630b5230-48cb-4929-9777-fa0f30399810
. - Изменить предыдущую версию
/run/NetworkManager/devices/3
чтобы иметь uuid
из 630b5230-48cb-4929-9777-fa0f30399810
. - Выключить режим полета.
- Подождите и надейтесь, что это сработало ...
Ирезультат? Не работает.
Вопросы
- Что я не так делаю?
- Что такое
uuid
ключ используется для? Почему это нормально для случайного генерирования? - Имеет ли значение для ключа
psk
какие-либо ограничения для разрешенных символов?