在不了解 SSID 的情况下将 wlan 接口连接到特定的 BSSID

Jen*_*rth 5 linux wireless-networking wpa-supplicant

我知道我的无线路由器的 BSSID 和密码,我想将我的无线接口连接到它而不关心 SSID。因此,我确实希望即使在修改了无线路由器的 SSID 之后它也能工作。

我试图实现这一目标是改变我的/etc/network/interfaces

iface wlan0 inet dhcp
        #wpa-ssid "MySSID" # old line
        wpa-bssid 01:23:45:67:89:ab # new line
        wpa-psk  "MYPASSWORD"
Run Code Online (Sandbox Code Playgroud)

但是使用此配置系统保持离线状态。我认为 wpa_supplicant 必须使用 ssid,但我不明白为什么。有什么技术原因吗?如何绕过这个?

Jen*_*rth 5

当通过配置文件提供完全相同的信息(bssid 和 psk)而wpa_supplicant不是/etc/network/interfaces

/etc/网络/接口:

iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)

/etc/wpa_supplicant/wpa_supplicant.conf:

network={
  bssid=01:23:45:67:89:ab
  psk="MYPASSWORD"
}
Run Code Online (Sandbox Code Playgroud)

我还测试了更改无线路由器的ssid并保持psk不变,效果很好。


Spi*_*iff 5

如果您使用带有密码的 WPA-PSK 或 WPA2-PSK,密码将与 SSID 混合并通过名为 PBKDF2 的函数运行以生成实际的 PSK。

因此,除非您将原始 PSK(64 个十六进制数字)传递给您的软件,否则它无法派生 PSK,除非它知道 SSID。

我想如果您的软件能够智能地查找与给定 BSSID 关联的 SSID,然后使用该 SSID 和他提供的密码输入 PBKDF2 来创建 PSK,那么它只需使用 BSSID 和密码即可进入网络。