Забыли пароль от домашнего Wi-Fi, а подключение к роутеру настроено на ноутбуке с Linux? Не спешите сбрасывать настройки маршрутизатора или звонить провайдеру. В большинстве дистрибутивов Linux — от Ubuntu и Debian до Arch Linux и Fedora — сохранённые пароли от сетей хранятся в системных файлах и могут быть извлечены без специальных программ. Главное — знать, где и как их искать.
В этой статье мы разберём 5 способов получения пароля от Wi-Fi на Linux: через терминал (с использованием nmcli, iwconfig и ручного чтения конфигов), а также графическими методами для пользователей GNOME, KDE Plasma и других DE. Отдельно остановимся на нюансах работы с зашифрованными сетями (WPA/WPA2) и объясним, почему некоторые методы могут не сработать на свежих версиях дистрибутивов. Если вы админ или просто любознательный пользователь — здесь найдёте ответы на все вопросы.
1. Способ: Использование nmcli — универсальный метод для NetworkManager
Утилита nmcli (NetworkManager Command Line Interface) — стандартный инструмент управления сетями в большинстве современных дистрибутивов. Она позволяет не только подключаться к Wi-Fi, но и извлекать сохранённые пароли. Метод работает в Ubuntu, Fedora, Linux Mint и других системах с NetworkManager.
Чтобы узнать пароль:
- Откройте терминал (
Ctrl+Alt+T). - Выведите список сохранённых сетей:
nmcli -s -g NAME connection show - Скопируйте название нужной сети (например,
MyHomeWiFi). - Получите пароль:
nmcli -s -g 802-11-wireless-security.psk connection show "MyHomeWiFi"
Если команда вернула пустую строку, проверьте:
- 🔹 Подключены ли вы к этой сети сейчас (некоторые дистрибутивы не сохраняют пароли для "чужих" сетей).
- 🔹 Используется ли
NetworkManager(проверьте командойps aux | grep NetworkManager). - 🔹 Не изменялись ли права доступа к конфигу (
ls -la /etc/NetworkManager/system-connections/).
2. Способ: Чтение конфигурационных файлов NetworkManager вручную
Все сохранённые сети и их пароли хранятся в файлах конфигурации по пути /etc/NetworkManager/system-connections/. Этот метод подходит, если nmcli по какой-то причине не работает или вы предпочитаете "ручной" контроль.
Инструкция:
- Откройте терминал с правами
root:sudo -i - Перейдите в директорию с конфигами:
cd /etc/NetworkManager/system-connections/ - Просмотрите список файлов (каждый файл = одна сеть):
ls - Откройте нужный файл (например,
nano MyHomeWiFi.nmconnection) и найдите строку:psk=ваш_пароль
Пример содержимого файла:
[connection]
id=MyHomeWiFi
type=wifi
[wifi]
ssid=MyHomeWiFi
mode=infrastructure
[wifi-security]
key-mgmt=wpa-psk
psk=12345678
[ipv4]
method=auto
Что делать, если файлов в папке нет?
Если директория /etc/NetworkManager/system-connections/ пуста, это означает, что:
1) Вы используете другой менеджер сетей (например, wpa_supplicant или connman).
2) Права доступа ограничены (попробуйте sudo ls -la /etc/NetworkManager/).
3) Сеть подключена в "гостевом" режиме без сохранения пароля.
⚠️ Внимание: Не редактируйте эти файлы вручную, если не уверены в синтаксисе! Ошибка в конфиге может привести к потере подключения к сети. Для изменений используйте nmtui или графические настройки.
3. Способ: Использование wpa_supplicant для систем без NetworkManager
Некоторые дистрибутивы (например, Arch Linux или минималистичные сборки) используют wpa_supplicant вместо NetworkManager. В этом случае пароли хранятся в файле /etc/wpa_supplicant/wpa_supplicant.conf.
Чтобы извлечь пароль:
- Откройте конфиг с правами суперпользователя:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf - Найдите блок сети (пример):
network={ssid="MyHomeWiFi"
psk="12345678"
key_mgmt=WPA-PSK
}
Если файл пуст или его нет:
- 🔹 Проверьте альтернативные пути:
/etc/wpa_supplicant.confили~/.config/wpa_supplicant/. - 🔹 Убедитесь, что
wpa_supplicantдействительно используется (командаps aux | grep wpa). - 🔹 В некоторых случаях пароли хранятся в зашифрованном виде (см. раздел про
wpa_passphrase).
4. Способ: Графический интерфейс (GNOME, KDE, XFCE)
Если вы предпочитаете не работать с терминалом, в большинстве графических оболочек есть встроенные инструменты для просмотра паролей. Рассмотрим варианты для популярных DE.
GNOME (Ubuntu, Fedora Workstation):
- Откройте
Настройки → Wi-Fi. - Нажмите на шестерёнку рядом с названием сети.
- В разделе
Безопасностьпоставьте галочкуПоказать пароль.
KDE Plasma:
- Перейдите в
Настройки системы → Сеть. - Выберите свою Wi-Fi сеть и нажмите
Изменить. - Вкладка
Безопасность→Показать пароль.
XFCE (Linux Mint XFCE, Xubuntu):
- 🔹 Откройте
Менеджер сети(значок в трее). - 🔹 Выберите сеть →
Свойства→Показать пароль.
⚠️ Внимание: В некоторых дистрибутивах (например, Ubuntu 22.04+) графический интерфейс может не показывать пароль из-за политики безопасности. В этом случае используйте терминальные методы.
Убедитесь, что вы подключены к нужной сети
Проверьте, что у вашей учётной записи есть права на просмотр паролей
Обновите менеджер сети (например, sudo apt update && sudo apt upgrade network-manager)
Перезагрузите компьютер, если сеть не отображается в списке
-->
5. Способ: Альтернативные утилиты (iwconfig, wpa_passphrase)
Если стандартные методы не сработали, попробуйте специализированные утилиты. Они требуют больше знаний, но иногда спасают в нестандартных ситуациях.
1. iwconfig (только для текущего подключения):
Эта команда показывает информацию о текущем Wi-Fi подключении, но не выводит пароль. Однако она полезна для диагностики:
iwconfig wlan0
Если в выводе есть строка Access Point: XX:XX:XX:XX:XX:XX, значит вы подключены к сети, и пароль можно извлечь другими способами.
2. wpa_passphrase (для генерации хэша):
Эта утилита не показывает сохранённые пароли, но позволяет сгенерировать хэш для нового подключения. Полезно, если вы знаете пароль и хотите его зашифровать для конфига:
wpa_passphrase "MyHomeWiFi" "12345678"
3. cat /proc/net/wireless:
Показывает статистику беспроводного подключения, но не содержит паролей. Используйте для проверки уровня сигнала и ошибок подключения.
| Утилита | Показывает пароль? | Когда использовать |
|---|---|---|
nmcli |
✅ Да | Основной метод для NetworkManager |
Конфиги NetworkManager |
✅ Да | Если nmcli не работает |
wpa_supplicant.conf |
✅ Да | Для систем без NetworkManager |
| Графический интерфейс | ⚠️ Иногда | Для пользователей GNOME/KDE |
iwconfig |
❌ Нет | Только для диагностики |
Частые ошибки и их решения
Даже опытные пользователи Linux иногда сталкиваются с проблемами при попытке извлечь пароль Wi-Fi. Вот самые распространённые ошибки и способы их исправления:
1. "Permission denied" при доступе к конфигам:
- 🔹 Используйте
sudoперед командами. - 🔹 Проверьте принадлежность файлов:
sudo chown $USER:$USER /etc/NetworkManager/system-connections/*
2. Файлы конфигурации зашифрованы:
В некоторых дистрибутивах (например, Fedora с включённым SELinux) пароли могут храниться в зашифрованном виде. Чтобы их прочитать, временно отключите SELinux (не рекомендуется для постоянного использования):
sudo setenforce 0
3. Сеть подключена, но пароль не сохранён:
Если вы подключились к сети через "гостевой" режим или wpa_supplicant без флага -w, пароль может не сохраняться. Решение:
- 🔹 Подключитесь к сети заново с галочкой
Сохранить пароль. - 🔹 Проверьте настройки
NetworkManager:sudo nano /etc/NetworkManager/NetworkManager.confУбедитесь, что строка
store-passwords=trueне закомментирована.
FAQ: Ответы на популярные вопросы
Можно ли узнать пароль от Wi-Fi, к которому я подключался раньше, но сейчас не подключён?
Да, если пароль был сохранён в системе. Используйте nmcli или проверьте файлы в /etc/NetworkManager/system-connections/. Однако некоторые дистрибутивы (например, Tails OS) автоматически удаляют пароли после отключения.
Я изменил пароль на роутере, но Linux всё равно подключается со старым. Где он хранится?
Это означает, что в системе сохранён устаревший пароль. Обновите его:
- Удалите старое подключение:
nmcli connection delete "MyHomeWiFi" - Подключитесь к сети заново (введите новый пароль).
Безопасно ли хранить пароли Wi-Fi в открытом виде в конфигах?
По умолчанию файлы в /etc/NetworkManager/system-connections/ доступны только пользователю root. Риск минимален, но для повышения безопасности:
- 🔹 Установите строгие права:
sudo chmod 600 /etc/NetworkManager/system-connections/* - 🔹 Используйте
wpa_supplicantс шифрованием конфигов.
Как узнать пароль Wi-Fi на Linux, если я подключён через Ethernet?
Если вы подключены к роутеру по кабелю, но хотите узнать пароль от его Wi-Fi, используйте:
- Веб-интерфейс роутера (обычно
192.168.1.1или192.168.0.1). - Команду для просмотра сохранённых сетей (если раньше подключались по Wi-Fi):
nmcli -g NAME,802-11-wireless-security.psk connection show
Работают ли эти методы на Linux для Android (Termux)?
Частично. В Termux можно использовать termux-wifi-connectioninfo, но для доступа к системным паролям нужны root-права. Без них извлечь пароль не получится из-за ограничений безопасности Android.