Esta guía explica cómo preparar un equipo Linux para que Kinetic WOL pueda apagarlo por SSH usando clave privada y un comando sudo no interactivo.
- El equipo Linux debe estar en la misma red o ser accesible por IP/DNS desde el teléfono.
- El servicio SSH debe estar instalado y activo.
- Debes tener un usuario Linux para la conexión SSH.
- Debes poder ejecutar comandos con
sudoen ese equipo para prepararsudoers.
En esta guía se usa este comando de apagado:
sudo -n /usr/bin/systemctl poweroffEl -n es importante: hace que sudo falle si necesita contraseña, en vez de quedarse esperando un prompt que la app no puede responder.
En el equipo Linux, comprueba si SSH está activo:
systemctl status sshEn algunas distribuciones el servicio se llama sshd:
systemctl status sshdSi no está instalado, en Debian/Ubuntu:
sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now sshEn Fedora/Bazzite:
sudo systemctl enable --now sshdComprueba la IP del equipo:
hostname -IApunta la IP que usarás como Host SSH en Kinetic WOL.
En la app:
- Abre o crea el dispositivo Linux.
- Activa
Apagado remoto. - Selecciona el método
SSH. - Pulsa
Generar nueva clave SSH. - Copia la clave pública que muestra la app.
La clave pública debe parecerse a esto:
ssh-rsa AAAA... kinetic-wol@android
No copies la clave privada al equipo Linux. La clave privada se queda en la app.
En el equipo Linux, entra con el usuario que vas a configurar en Kinetic WOL.
Prepara el directorio SSH:
mkdir -p ~/.ssh
chmod 700 ~/.sshEdita authorized_keys. Si prefieres nano:
nano ~/.ssh/authorized_keysPega la clave pública completa en una línea nueva. Guarda con:
Ctrl+O
Enter
Ctrl+X
Aplica permisos:
chmod 600 ~/.ssh/authorized_keysKinetic WOL ejecuta un comando remoto por SSH. Para apagar sin interacción, el usuario remoto debe poder ejecutar el comando exacto sin contraseña.
Primero localiza systemctl:
command -v systemctlNormalmente devolverá:
/usr/bin/systemctl
Edita sudoers con visudo usando nano:
sudo EDITOR=nano visudoAñade al final una línea como esta, cambiando TU_USUARIO por el usuario Linux real:
TU_USUARIO ALL=(root) NOPASSWD: /usr/bin/systemctl poweroff
Guarda con:
Ctrl+O
Enter
Ctrl+X
No edites /etc/sudoers directamente con un editor normal. visudo valida la sintaxis antes de guardar y evita dejar sudo roto.
En el dispositivo dentro de Kinetic WOL:
- Método:
SSH - Host SSH: IP o nombre DNS del equipo Linux
- Puerto SSH:
22, salvo que hayas cambiado el puerto del servidor - Usuario SSH: el usuario donde pegaste la clave pública
- Clave privada: la clave privada generada por la app
- Fingerprint del host: déjalo vacío en la primera prueba
- Comando:
sudo -n /usr/bin/systemctl poweroffPulsa Probar conexión.
Si todo está correcto, la app conectará por SSH, ejecutará un comando de prueba inocuo y guardará automáticamente el fingerprint del host en la primera prueba.
Después de una prueba SSH correcta:
- Guarda el dispositivo.
- Vuelve al dashboard.
- Pulsa
Apagaren el dispositivo.
El equipo debería apagarse.
- Revisa la IP configurada.
- Comprueba que el teléfono y el equipo están en la misma red.
- Comprueba que SSH está activo:
systemctl status ssh
systemctl status sshd- Revisa el puerto SSH.
- Revisa el firewall del equipo Linux.
- En Ubuntu/Debian con UFW:
sudo ufw allow ssh- Revisa que la clave pública está en
~/.ssh/authorized_keysdel usuario correcto. - Revisa permisos:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys- Revisa que en Kinetic WOL estás usando el mismo usuario.
Esto puede pasar si reinstalaste el sistema, cambiaste el servidor SSH o estás apuntando a otra máquina con la misma IP.
Si el cambio es esperado, borra el fingerprint guardado en Kinetic WOL y vuelve a pulsar Probar conexión para capturarlo de nuevo.
El problema suele estar en sudoers.
Revisa que el comando configurado en la app coincide exactamente con el permitido en sudoers.
Para este comando en la app:
sudo -n /usr/bin/systemctl poweroffLa línea de sudoers debe permitir:
TU_USUARIO ALL=(root) NOPASSWD: /usr/bin/systemctl poweroff
La regla anterior permite a ese usuario apagar el equipo sin contraseña. Es una concesión limitada si solo permites el comando exacto de apagado, pero sigue siendo una capacidad sensible.
Usa un usuario dedicado si quieres aislar mejor este acceso.