Linux 명령줄에서 일반 텍스트로 Wi-Fi 비밀번호를 보는 방법은 무엇입니까?

Linux 명령줄에서 일반 텍스트로 Wi-Fi 비밀번호를 보는 방법은 무엇입니까?

이더넷을 통해 인터넷에 연결되어 있지만 Wi-Fi 비밀번호를 저장했습니다.

폴더 /etc/NetworkManager/system-connections가 비어 있습니다.

이 명령은 아무것도 표시하지 않습니다(변수를 원하는 uuid로 교체).

# nmcli -s -g 802-11-wireless-security.psk connection show $UUID

이것도 도움이 되지 않습니다:

# for uuid in $(nmcli -g UUID connection show); do
    nmcli -g 802-11-wireless.ssid,802-11-wireless-security.psk connection show $uuid | awk -F: '{
        if (NR == 1) printf "SSID: %s\n", $0;
        if (NR == 2) printf "Password: %s\n\n", $0;
    }'
done

이 코드의 출력은 다음과 같습니다.

SSID: Home_WiFi
Password: <hidden>

SSID: Starbucks_clients
Password: <hidden>

SSID: Sony_phone_hotspot
Password: <hidden>

일반 텍스트로 비밀번호를 얻는 데 도움이 되었나요? 비밀번호를 다시 입력할 필요 없이 Wi-Fi가 자동으로 다시 연결하고 인증하기 때문에 어딘가에 저장됩니다.

@Raffa가 제안한 명령은 약간 수정되었습니다.

# nmcli dev wifi show-password
Error: No Wi-Fi device found.
# for conn in $(nmcli -t -f NAME con show); do
    echo "Details for $conn:"
    nmcli connection show "$conn" --show-secrets | grep 802-11-wireless-security.psk
done

Details for Wired:
Error: Wired - no such connection profile.
Details for connection:
Error: connection - no such connection profile.
Details for 1:
Error: 1 - no such connection profile.
Details for lo:
Details for virbr0:
Details for Home_WiFi:
802-11-wireless-security.psk:           --
802-11-wireless-security.psk-flags:     1 (agent-owned)
Details for Starbucks_clients:
802-11-wireless-security.psk:           --
802-11-wireless-security.psk-flags:     1 (agent-owned)
Details for Sony_phone_hotspot:
802-11-wireless-security.psk:           password1
802-11-wireless-security.psk-flags:     0 (none)

이제 일부 네트워크에서는 비밀번호가 표시되고 다른 네트워크에서는 표시되지 않습니다.

- 갱신 -

비밀번호는 에 의해 저장됩니다 /usr/bin/kwalletmanager5. 명령줄에서 추출하는 방법을 아시나요?

관련 정보