Cómo cambiar la contraseña WiFi en una Raspberry Pi Zero

Un par de entradas más abajo, os expliqué con métricas, gráficos y mucha sobriedad cómo exprimir hasta el último hercio de las redes de 2,4 GHz y 5 GHz de un router Asus. Todo milimétricamente calculado. Pero claro, entre Fricardo (mi otro «yo», ese ser caótico que toca donde no debe) y el menda (que hace lo que puede para pasar por una persona funcional a ojos de la sociedad), pergeñamos una maniobra brillante: cambiar la contraseña del Wi-Fi sin avisar a nadie.

¿Qué podía salir mal? Absolutamente nada, salvo el pequeño detalle de que, en un rincón mugriento del sótano, mi pequeña Raspberry Pi Zero seguía ejecutando silenciosamente su misión de velar por la salud del S.A.I. Salicru.

Al bajar al sótano, me encontré a la criatura en su repisa, solitaria, más ciega que un topo y proyectando al abismo digital un dramático:

— Padre, ¿por qué me has abandonado?

En fin. El emotivo reencuentro no incluyó lágrimas, pero si una sesión de terminal a la antigua usanza y una sarta de comandos para devolverle la luz.

Moraleja: cuando te creas un lince de la ciberseguridad por cambiar cuatro claves en el router, recuerda que seguro tienes un chip de tres euros escondido en un rincón que sabe perfectamente que eres un indocumentado.

¡Comenzamos!

Tanto en Debian 13 (Trixie) como en MX Linux, la gestión de red recae en NetworkManager, y sus perfiles de conexión se guardan como archivos de texto plano que puedes modificar de varias formas.

Te propongo dos escenarios habituales para solucionar este problema.

Escenario A: Sin acceso SSH (editar desde la microSD)

Este es el plan de rescate. La Pi está completamente incomunicada y hay que sacar la tarjeta.

Apaga la Pi y extrae la microSD.

Conéctala a tu ordenador. La configuración de red está en la partición rootfs (ext4). En Windows necesitarás un programa como Linux Reader; en Linux o macOS se monta directamente.

Localiza la carpeta de perfiles de NetworkManager:

sudo ls /ruta/a/rootfs/etc/NetworkManager/system-connections/

Verás uno o varios archivos con extensión .nmconnection (por ejemplo, Home-IoT.nmconnection o similar).

Edita el archivo con un editor de texto. Busca la sección

[wifi-sec] y cambia el valor de psk= por tu nueva contraseña:

[wifi-sec] key-mgmt=wpa-pskpsk=TuNuevaContraseña

¡Cuidado con los permisos! NetworkManager ignora en silencio cualquier archivo que no sea propiedad de root y que no tenga permisos 600. Ajusta ambos:

sudo chown root:root /ruta/a/rootfs/etc/NetworkManager/system-connections/*.nmconnection 
sudo chmod 600 /ruta/a/rootfs/etc/NetworkManager/system-connections/*.nmconnection

Este es el error más común por el que este método «no funciona» en los tutoriales.

Sincroniza y expulsa. Ejecuta sync para asegurarte de que los cambios se escriben físicamente antes de extraer la tarjeta.

Reinsértala en la Pi y arranca.

Escenario B: Con acceso SSH (usar nmcli)

Si puedes entrar a la Pi (aunque sea por una red temporal), este es el método recomendado porque NetworkManager valida los cambios y aplica los permisos automáticamente.

Lista las conexiones para ver el nombre exacto de tu perfil:

nmcli connection show

El nombre (NAME) suele ser el SSID de la red.

Modifica la contraseña del perfil. Sustituye "NOMBRE_CONEXION" por el que hayas visto:

sudo nmcli connection modify "NOMBRE_CONEXION" wifi-sec.psk "TuNuevaContraseña"

Aplica el cambio reactivando la conexión:

sudo nmcli connection up "NOMBRE_CONEXION"

La sesión SSH se cortará, pero la Pi se reconectará automáticamente con la nueva clave.

¿Y si el perfil no aparece con nmcli connection show? Puedes usar nmtui, la interfaz de texto de NetworkManager, ejecutando en la terminal:

sudo nmtui

Es más visual y hace exactamente lo mismo.

Verificación final: ¿se ha guardado bien la contraseña?

Después de aplicar el cambio, es muy recomendable confirmar que NetworkManager ha guardado el perfil correctamente y que la nueva contraseña está asociada a la conexión. Para ello puedes usar nmcli con la opción -s (o --show-secrets), que obliga a mostrar los valores sensibles que, de otro modo, aparecerían ocultos.

1. Ver el nombre exacto del perfil (si no lo recuerdas):

nmcli connection show

2. Mostrar los detalles del perfil incluyendo la contraseña:

sudo nmcli -s connection show "NOMBRE_DEL_PERFIL" | grep psk

La salida debería mostrar una línea similar a:

802-11-wireless-security.psk: TuNuevaContraseña

Si ves psk-flags=1 en lugar del valor en claro, significa que la contraseña está almacenada en el llavero del sistema (GNOME Keyring / KWallet) y no en el archivo del perfil. En ese caso, nmcli -s puede pedirte la contraseña del llavero, pero el perfil sigue estando correctamente guardado. Para entornos headless como una Raspberry Pi, lo habitual es que el psk se guarde directamente en el archivo y puedas verlo con el comando anterior.

3. Comprobación directa en el archivo (opcional pero definitiva)

NetworkManager guarda los perfiles en /etc/NetworkManager/system-connections/. Puedes leer el archivo del perfil y buscar la línea psk=:

sudo cat /etc/NetworkManager/system-connections/NOMBRE_DEL_PERFIL.nmconnection | grep psk

Ver la contraseña en claro en este archivo confirma al 100 % que el cambio se ha persistido en disco y sobrevivirá a un reinicio. (Recuerda que estos archivos solo son legibles por root.)

Si ambos comandos muestran tu nueva contraseña, el perfil está correctamente guardado y la Pi se reconectará a la red tras cualquier reinicio sin necesidad de volver a tocar nada.

Conclusión

Para Debian 13 y MX Linux, el procedimiento es prácticamente idéntico porque ambos confían en NetworkManager. Si no tienes acceso, edita el archivo .nmconnection en la SD (recordando los permisos 600 y root:root). Si puedes entrar por SSH, nmcli es tu mejor aliado porque evita errores de sintaxis y de permisos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio