可通过终端命令提取networkmanager中保存的wifi明文密码:批量扫描用sudo grep -r "psk=" /etc/networkmanager/system-connections/;单个ssid可用sudo cat或sudo nmcli connection show --show-secrets;导出纯密码列表可用sed清理格式并保存至桌面文件。

你已成功连接某个WiFi网络,但需要查看其密码以便在新设备上输入或分享给他人,系统未在图形界面中提供直接查看入口,必须通过终端命令提取存储在NetworkManager配置文件中的明文密钥。
批量扫描所有已保存WiFi密码
这一步操作起来很简单,直接执行一条命令就能扫出全部密码,适用于你记不清具体是哪个SSID但想一次性找回所有密码的场景。
按下 Win + T 打开终端。
输入并执行:sudo grep -r "psk=" /etc/NetworkManager/system-connections/。
输入当前用户密码完成授权,终端将输出类似 /etc/NetworkManager/system-connections/ChinaNet-8312.nmconnection:psk=MyHome2025 的行。每行中 psk= 后紧随的内容即为对应WiFi的明文密码(不含引号)。若某行显示的是 psk-flags=1,说明该密码被标记为仅限root访问,无法直接读取,需换用nmcli方法。
针对单个已知SSID精确查密码
当你只关心某一个特定网络(比如“OfficeWiFi”)的密码,且已确认它曾被保存过,这种方法比批量扫描更干净、更可控,避免干扰信息。
方法一:直接读取配置文件
先列出所有已保存连接:sudo ls /etc/NetworkManager/system-connections/。
从输出中找到目标网络对应的文件名(如 OfficeWiFi.nmconnection)。
执行:sudo cat /etc/NetworkManager/system-connections/OfficeWiFi.nmconnection | grep psk。
若输出为 psk=OfficePass2026,则密码就是 OfficePass2026;若输出为 psk-flags=1,请跳转至方法二。
方法二:用nmcli显示密钥(需sudo)
第一步:确认当前活跃连接的SSID名称 → nmcli --active | grep wifi。
第二步:用show-secrets参数提取密码 → sudo nmcli connection show "OfficeWiFi" --show-secrets | grep 802-11-wireless-security.psk。
注意:如果nmcli版本较老(如早期V10),可能不支持--show-secrets参数,此时必须退回方法一并手动检查配置文件中[wifi-security]段的psk=值。
快速导出密码到桌面文本文件
原始grep输出带路径和冒号,不适合直接备份或发给同事。下面这条命令能自动清理格式,生成纯密码列表:
执行:sudo grep -r "psk=" /etc/NetworkManager/system-connections/ | sed 's/^[^:]*://; s/psk=//' | sed 's/"//g' > ~/Desktop/wifi_passwords.txt。
这条命令做了三件事:删掉文件路径前缀、去掉psk=标识、去掉双引号。最终每行就是一个纯密码。
如需同时保留SSID名,可改用:sudo nmcli -g name,802-11-wireless-security.psk connection show --show-secrets 2>/dev/null | awk -F: '{print $1 " → " $2}' | sed 's/^[[:space:]]*//; s/[[:space:]]*$//' > ~/Desktop/wifi_list.txt。











