我正在尝试编写一个将我的计算机连接到 wifi 网络的脚本。我用我的手机(在制作该脚本之前我已经连接过它)尝试了它,它一直有效,直到我更改了 wifi 密码。现在,该脚本生成的密码文件仅包含以下内容:
802-1x.password:<wifi password>
问题是更改密码后,我现在需要一种802-11-wireless-security.psk
密码。我应该如何设置我的密码文件以使其每次都能正常工作?
编辑:好的,所以我的帖子很糟糕,所以我会尝试在这里清理一下。首先,这是脚本:
#! /bin/env bash
# Script to help connect to a new wifi network.
# Aguments:
# 1. Name of the wifi network we want to connect to.
# 2. (optionnal) creates a password file for this network. Will update existing files
# Will just use the existing file if the argument isn't specified.
# Change this variable to point to the correct dir
passwdPath="/home/leo/Code/dotFiles/config/other/wifiPasswdFiles"
if [ $# -eq 1 ] # checks if user specified a password
then # no password specified: check if password file exist
# if there is no saved password for this network
if [ ! -f "$passwdPath/$1.passwd" ]
then
echo "No registered password for this wifi network"
exit 1
fi
else # if password is specified: create / update password file
echo "802-1x.password:$2" > "$passwdPath/$1.passwd"
fi
# actually connect to the wifi network
nmcli con up $1 passwd-file "$passwdPath/$1.passwd"
据我了解(可能是错误的和/或过时的),要连接到需要密码的 wifi 网络nmcli
,您必须提供密码文件。是的,我可以连接到网络,nmcli con up <wifi_name> --ask
但我想要一个脚本,让我在保存密码后说“嘿,将自己连接到那个 wifi 网络”(以避免每次都输入密码),如果这是我第一次连接到这个 wifi 网络,请创建密码文件。
我在终端中使用脚本,第一次尝试连接到手机的共享 wifi 时它运行良好,但是如果我更改手机上所需的密码并尝试重新连接我的计算机相同的 wifi(使用更新的密码),我收到此错误:
Passwords or encryption keys are pequired to access the wireless network '<wifi_name>'.
Warning: password for '802-11-wireless-security.psk' not given in 'passwd-file' and nmcli cannot ask without '--ask' option.
Error: Connection activation failed: Secrets were required, but not provided
Hint: use 'journalctl -xe NM_CONNECTION=50d22177-88cb-43c5-bc10-0d37c5b5cf4b + NM_DEVICE=wlp3s0' to git more detailes.
如果我运行该命令,我会收到一条 1002 行长的消息,详细说明我认为 nmcli 命令采取的所有步骤,但我不确定。
我想知道的是,我应该如何设置我的密码文件以使脚本每次都能正常工作,但从 KamilCuk 的评论来看,我觉得我绝对没有使用nmcli
正确的方法。
我希望我已经说出了这个(可以说是太长了)编辑应该说的所有内容。