구성 파일을 편집하지 않고 명령줄에서 WPA2에 연결

구성 파일을 편집하지 않고 명령줄에서 WPA2에 연결

Bash 스크립트를 사용하여 WPA2 네트워크에 연결하려고 합니다. 일반적인 접근 방식은 다음과 같습니다.

wpa_passphrase SSID PASSWORD > CONFIG_FILE
wpa_supplicant -B -iwlan0 -cCONFIG_FILE -Dwext

그러나 비밀번호가 파일에 남아있는 것을 원하지 않습니다. 단일 명령으로 개방형 및 WEP 네트워크를 구성하는 방법과 유사하게 구성 파일을 사용하지 않고(일시적으로라도) WPA2 네트워크를 구성하는 유사한 방법이 있습니까 iwconfig wlan0 essid SSID key s:PASSWORD?

답변1

내 의견에서 이미 암시된 아이디어를 시작으로 답변을 제공하고 싶습니다. 답변은 GNU wpa_supplicant(버전 v2.6) wpa_passphrase, GNU (버전 4.4.23) 및 Linux 4.18 bash의 조합을 사용하여 특정 상황에서 작동 하도록 테스트되었습니다 .

여기에 제공된 솔루션의 목적이 다음과 같기를 바랍니다.남은 비밀번호 파일을 피하십시오보다 일반적인 posix 접근 방식을 채택하기 위해 실험에 사용할 수 있는 아치 리눅스 설정만 테스트했습니다.

나는 달렸다

strace wpa_supplicant -i <WIFIINTERFACE> -c <(wpa_passphrase <SSID> <PASSPHRASE>) 2>&1 | less

내 Wi-Fi 네트워크의 실제 매개변수를 사용합니다. 연결이 설정되었습니다. 페이지를 탐색하는 동안 다음을 발견했습니다.

execve("/usr/bin/wpa_supplicant", ["wpa_supplicant", "-i", "wlp0s29u1u2", "-c", "/dev/fd/63"], 0x7fffc7b0ad10 /* 39 vars */) = 0
[....]
openat(AT_FDCWD, "/dev/fd/63", O_RDONLY) = 3
fstat(3, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
read(3, "network={\n\tssid=\"Oscarone\"\n\t#psk"..., 4096) = 116
read(3, "", 4096)                       = 0
close(3)                                = 0
socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE) = 3
bind(3, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=0x000001}, 12) = 0
[....]

이것이 프로세스 대체( ) command <(other command)를 위한 작업 방식 이어야 합니다. wpa_supplicant가 파이프에 액세스하여 /dev/fd/63구성을 읽은 다음 fd를 닫은 후 3파일 설명자를 직접 재사용하여 open을 수행하는 것을 볼 수 있습니다 socket.

via를 다시 확인했는데 ls -ialh /proc/<pid of wpa_supplicant>/3다음과 같이 보고되었습니다. 이는 암호 문구의 유일한 임시 액세스 가능성( 571637 lrwx------ 1 root root 64 Aug 23 20:49 3 -> 'socket:[571092]' fd로 열린 fifo를 통해)이 실제로 닫혔으며 여전히 적절하게 알림을 받고 있음을 의미합니다./dev/fd/533socketstrace

"파일 없는" "파일 없는" 명령줄을 만드는 방법에 대한 정보는 wpa_supplicant아치 리눅스 위키(https://wiki.archlinux.org/index.php/WPA%20신청자)

나는 또한 분명한 점을 지적하고 싶다. 쉘에 비밀번호를 입력하므로 쉘 기록에 기록되지 않았는지 확인하고 다음과 유사한 작업을 수행하십시오.

set +o history
wpa_supplicant -i INTERFACE -c <(wpa_passphrase SSID PASSPHRASE) &
set -o history

(여기에 표시된 대로https://unix.stackexchange.com/a/10923/24394)

관련 정보