我确实知道无线路由器的 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"
但使用此配置,系统会保持离线状态。我认为 ssid 对于 wpa_supplicant 是必需的,但我不明白为什么。有什么技术原因吗?如何绕过这个问题?
答案1
当通过配置文件提供完全相同的信息(bssid 和 psk)时,它可以工作,而wpa_supplicant
不是/etc/network/interfaces
:
在 /etc/网络/接口:
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
/etc/wpa_supplicant/wpa_supplicant.conf:
network={
bssid=01:23:45:67:89:ab
psk="MYPASSWORD"
}
我也测试了更改无线路由器的 ssid 并保持 psk 不变,效果很好。
答案2
如果您使用带有密码的 WPA-PSK 或 WPA2-PSK,则密码将与 SSID 混合并通过名为 PBKDF2 的函数运行以生成实际的 PSK。
因此,除非您将原始 PSK(64 位十六进制数字)传递给您的软件,否则它无法推导出 PSK,除非它知道 SSID。
我想,如果您的软件能够智能地查找与给定 BSSID 关联的 SSID,然后使用该 SSID 和他提供的密码输入 PBKDF2 来创建 PSK,那么它就可以仅使用 BSSID 和密码即可接入网络。