可直接通过终端命令提取已保存wifi密码:批量用sudo grep -r "psk=" /etc/networkmanager/system-connections/;单个ssid可用sudo cat对应配置文件或sudo nmcli show --show-secrets;当前连接则先nmcli --active查ssid再提取密码。

你已成功连接某个WiFi网络,但需要查看其密码以便在新设备上输入或分享给他人,系统未在图形界面中提供直接查看入口,必须通过终端命令提取存储在NetworkManager配置文件中的明文密钥。
用sudo grep命令批量提取所有已保存WiFi密码
这一步操作起来很简单,直接执行一条命令就能扫出全部密码,适用于你记不清具体是哪个SSID但想一次性找回所有密码的场景。
1、按下 Win + T 打开终端。
2、输入并执行:sudo grep -r "psk=" /etc/NetworkManager/system-connections/。
3、输入当前用户密码完成授权,终端将输出类似 /etc/NetworkManager/system-connections/ChinaNet-8312.nmconnection:psk=MyHome2025 的行。
每行中 psk= 后紧随的内容即为对应WiFi的明文密码(不含引号)。若某行显示的是 psk-flags=1,说明该密码被标记为仅限root访问,无法直接读取,需换用nmcli方法。
针对单个已知SSID精确查密码
当你只关心某一个特定网络(比如“OfficeWiFi”)的密码,且已确认它曾被保存过,这种方法比批量扫描更干净、更可控,避免干扰信息。
方法一:直接读取配置文件
1、先列出所有已保存连接:sudo ls /etc/NetworkManager/system-connections/。
2、从输出中找到目标网络对应的文件名(如 OfficeWiFi.nmconnection)。
3、执行:sudo cat /etc/NetworkManager/system-connections/OfficeWiFi.nmconnection | grep psk。
若输出为 psk=OfficePass2026,则密码就是 OfficePass2026;若输出为 psk-flags=1,请跳转至方法二。
方法二:用nmcli强制显示敏感字段
1、确认连接名称是否准确(注意大小写和空格):nmcli connection show。
2、执行:sudo nmcli connection show "OfficeWiFi" --show-secrets | grep "802-11-wireless-security.psk"。
【必须加sudo,否则返回为空】。输出形如 802-11-wireless-security.psk:OfficePass2026,冒号后即为密码。
通过nmcli快速定位当前正在使用的WiFi及其密码
当你只想知道此刻正在上网的那个WiFi的密码,而不是翻历史记录,这个路径最直接——先锁定活跃连接,再精准提取。
第一步:确认当前激活的WiFi连接
1、运行:nmcli -t -f NAME,DEVICE,ACTIVE connection show --active。
2、识别输出中 ACTIVE 列为 yes 且 DEVICE 是无线接口(如 wlp3s0)的那一行,其 NAME 值就是当前SSID。
第二步:提取该连接的密码
1、将上步得到的SSID代入命令:sudo nmcli connection show "当前SSID" --show-secrets | grep "802-11-wireless-security.psk"。
2、密码出现在冒号右侧,复制即可使用。











