Сетевой менеджер подключается к скрытой сети -укажите пароль -не тип аутентификации

Несмотря на то, что [[... ]]«умнее», чем [... ]или test..., все же лучше явно использовать числовые операторы сравнения:

if [[ "$tpgid" -eq -1 ]]; then...

Далее, ваш шестнадцатеричный дамп:

$ hd /tmp/test/fff
00000000  20 20 20 2d 31                                    |   -1|

показывает, что $tpgidрасширяется до " -1", а не "-1"; -eqзнает, как с этим справиться, а ==правильно выполняет сравнение строк:

$ if [[ "   -1" == -1 ]]; then echo truthy; else echo falsy; fi
falsy
$ if [[ "   -1" -eq -1 ]]; then echo truthy; else echo falsy; fi
truthy

Короче говоря, условие сопоставления строк не возвращает true, потому что строки на самом деле не совпадают.

2
23.02.2021, 01:49
2 ответа

При использовании nmcliс device wifi connectпопробуйте установить параметр hiddenна yes.

Выдержка из инструкции[1]:

wifi connect (B)SSID [password password] [wep-key-type {key | phrase}] [ifname ifname] [bssid BSSID] [name name] [private {yes | no}] [hidden {yes | no}]
  Connect to a Wi-Fi network specified by SSID or BSSID. The command finds a matching connection or creates one and then activates it on a device. This is a
  command-line counterpart of clicking an SSID in a GUI client. If a connection for the network already exists, it is possible to bring up (activate) the existing
  profile as follows: nmcli con up id name. Note that only open, WEP and WPA-PSK networks are supported if no previous connection exists. It is also assumed that
  IP configuration is obtained via DHCP.

  If --wait option is not specified, the default timeout will be 90 seconds.

  Available options are:

  [...]

  hidden
    set to yes when connecting for the first time to an AP not broadcasting its SSID. Otherwise, the SSID would not be found and the connection attempt would
    fail.


  [1]: https://developer.gnome.org/NetworkManager/stable/nmcli.html
1
18.03.2021, 22:28

Обычно nmcli device wifi connect "$SSID"является решением здесь. Это создаст новый профиль, если профиля еще не существует.

Однако для этого необходимо, чтобы NetworkManager нашел сеть в результатах сканирования, иначе он не знает, какие параметры установить. Поскольку сеть скрыта, ее может и не быть. Чтобы решить эту проблему, сначала выполните явное сканирование SSID с помощью nmcli device wifi rescan ssid "$SSID", чтобы найти его в результате сканирования (nmcli device wifi).

Правильное решение действительно должно быть тем, что говорит user234931 (nmcli device wifi connect "$SSID" hidden yes), но я не уверен, что оно действительно работает. Возможно, так оно и есть, иначе это должно быть исправлено в NetworkManager:)

1
18.03.2021, 22:28

Теги

Похожие вопросы