nmcli를 사용하여 WiFi 스크립트에 무차별 비밀번호를 쓰는 방법은 무엇입니까?

nmcli를 사용하여 WiFi 스크립트에 무차별 비밀번호를 쓰는 방법은 무엇입니까?

list-of-pwds 다음 스크립트의 목적은 WiFi에 연결하기 위해 파일에서 올바른 비밀번호를 찾는 것입니다 . 올바른 비밀번호를 찾으면 검색을 중단하세요.

#!/usr/bin/bash

nmcli d wifi list

echo "Give me the SSID."
read ssid

if [[ -f $HOME/list-of-pwds ]]; then
    :
else
    >>$HOME/list-of-pwds
fi

echo -e "Place the passwords in $HOME/list-of-pwds.\nPress 'y' when ready to proceed?[Y/n]"
read proceed

if [[ "${proceed}" == 'y' ]]; then
  
      while IFS="" read -u 7 -r l || [[ -n "${l}" ]]; do    
      nmcli connection add type wifi ifname wlp3s0 ssid "${ssid}" con-name "${ssid}" +802-11-wireless-security.key-mgmt WPA-PSK +802-11-wireless-security.psk "${l}"
      if [[ "${?}" -eq 0 ]]; then
        echo "Found password for  ${ssid}: ${l}."
        break
      fi
    done 7<$HOME/list-of-pwds    
  
fi

#nmcli con show --active seems to return always 0 irrespectively on the connection status
#but nmcli con show --active|grep whatever returns 0 only when there is an active connection

list-of-pwds다음과 같습니다.

ana
game
bondage
domination
submission
masochism
thecorrrectPassword
tordfasre

첫 번째 줄에 올바른 비밀번호가 없으면 list-of-pwds다음과 같은 결과가 출력됩니다.

Error: Failed to add 'net' connection: 802-11-wireless-security.psk: property is invalid
Error: Failed to add 'net' connection: 802-11-wireless-security.psk: property is invalid
Error: Failed to add 'net' connection: 802-11-wireless-security.psk: property is invalid
Connection 'net' (66ab5db1-a662-43a0-bfbe-ee353a7e14d6) successfully added.
Found password for  net: domination.

netssid는 어디에 있나요? 내 WiFi의 보안은 WPA2입니다. 비밀번호 길이는 정확하지만 올바르지 않은 경우, 비밀번호를 묻는 팝업창이 뜹니다. 스크립트가 올바른 비밀번호를 발견하면 그러한 팝업이 나타나지 않습니다. 예를 들어 domination비밀번호 길이가 정확하더라도(팝업 표시) 올바른 비밀번호가 아니지만(팝업 표시) thecorrrectPassword올바른 비밀번호입니다(팝업이 표시되지 않음). 교체하게 된 것은 바로 이 팝업이었지만 nmcli d wifi connect "${ssid}" password "${l}" 문제 nmcli connection add type wifi ifname wlp3s0 ssid "${ssid}" con-name "${ssid}" +802-11-wireless-security.key-mgmt WPA-PSK +802-11-wireless-security.psk "${l}" 는 지속되었습니다.

@tripleee의 팁에 따라 암호가 포함된 파일을 명령줄 인수로 전달하려고 시도했는데 다음과 같이 수정했습니다.

802-11-wireless-security.psk:ana
802-11-wireless-security.psk:game
802-11-wireless-security.psk:bondage
802-11-wireless-security.psk:domination
802-11-wireless-security.psk:submission
802-11-wireless-security.psk:masochism
802-11-wireless-security.psk:thecorrectPassword
802-11-wireless-security.psk:torture

스크립트를 다시 작성하십시오.

#!/usr/bin/bash


nmcli d wifi list

echo "Give me the SSID."
read ssid

if [[ -f $HOME/list-of-pwds ]]; then
    :
else
    >>$HOME/list-of-pwds
fi

echo -e "Place the passwords in $HOME/list-of-pwds.\nReady to proceed?[Y/n]"
read proceed

if [[ "${proceed}" == 'y' ]]; then
  nmcli con add type wifi con-name "${ssid}" ssid "${ssid}"
  nmcli con mod "${ssid}" wifi-sec.key-mgmt wpa-psk
  nmcli connection up "${ssid}" ifname wlp3s0 passwd-file "$HOME/list-of-pwds"
fi

인증을 요청하는 팝업과 다음 표준 출력을 받았습니다.

Connection 'net' (dcaab1be-4d54-49f6-ac3b-30bc153806ae) successfully added.
Error: Connection activation failed: Secrets were required, but not provided
Hint: use 'journalctl -xe NM_CONNECTION=dcaab1be-4d54-49f6-ac3b-30bc153806ae + NM_DEVICE=wlp3s0' to get more details.

난 대본을 알아nmcli 좋은 무차별 대입 도구가 될 가능성은 낮습니다.. 즉, 무차별 대입 도구처럼 작동하도록 스크립트를 다시 작성할 수 있는지 궁금합니다. 문제 분포가 특정합니까(Ubuntu Desktop 22.04 LTS를 사용하고 있습니까)?

관련 정보