Web Dashboard per lo Shutdown Remoto: PC Windows da Raspberry Pi
In questa guida vedremo come realizzare un pannello di controllo web ospitato su un Raspberry Pi per spegnere i PC Windows con un solo tocco, con tanto di controllo di stato (Online/Offline).
1. Preparazione del PC Windows (Target)
Per ricevere il comando dal Raspberry, Windows deve avere il server SSH attivo.
Installazione OpenSSH Server
Apri PowerShell come Amministratore e lancia:
Add-WindowsCapability -Online -Name OpenSSH.Server
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Abilitazione Shutdown via SSH
Assicurati che l’utente che userai per il collegamento abbia i permessi di spegnimento. In genere un account amministratore è sufficiente.
2. Configurazione del Raspberry Pi (Server)
Sul Raspberry Pi installeremo Nginx e PHP per gestire la dashboard.
Installazione dei pacchetti necessari
sudo apt update
sudo apt install nginx php-fpm openssh-client -y
Configurazione Chiavi SSH
Per permettere al Raspberry di spegnere il PC senza inserire ogni volta la password, dobbiamo usare le chiavi SSH.
# Genera la chiave (premi invio a tutto)
ssh-keygen -t rsa
# Copia la chiave sul PC Windows
ssh-copy-id utente@indirizzo_ip_windows
3. La Web Dashboard
La dashboard interrogherà lo stato del PC e fornirà un pulsante per inviare il comando con spegnimento a 19 secondi:
shutdown /s /t 19.
4. Configurazione delle Authorized Keys su Windows
Una volta generata la chiave sul Raspberry, dobbiamo “presentarla” a Windows. Il procedimento cambia se l’utente che userai è un Amministratore o un Utente Standard.
Caso A: Utente Amministratore (Consigliato per lo Shutdown)
Se l’utente configurato nel PHP ha privilegi di admin, Windows ignora la cartella dell’utente e cerca un file di sistema protetto.
Crea il file di sistema:
Apri il Blocco Note come Amministratore e crea il file:
C:\ProgramData\ssh\administrators_authorized_keys
Incolla la chiave:
Copia la chiave pubblica del Raspberry (id_rsa.pub) all’interno del file e salva.
Configura i permessi (Fondamentale): Affinché SSH accetti la chiave, il file deve essere leggibile solo dal sistema.
- Tasto destro sul file > Proprietà > Securità > Avanzate.
- Clicca su Disabilita ereditarietà e scegli “Rimuovi tutti i permessi ereditati”.
- Aggiungi l’utente SYSTEM e il gruppo Administrators con permessi di “Lettura” e “Controllo completo”.
- Rimuovi qualsiasi altro utente o gruppo dalla lista.
Il test di “Fiducia” (Host Verification)
Esegui questo comando una volta sola dal terminale del Raspberry:
sudo -u www-data ssh -o StrictHostKeyChecking=accept-new tuo_utente@192.168.x.x "whoami"
Il codice completo della dashboard
Per mantenere la guida pulita e leggibile, puoi visualizzare e copiare il codice sorgente completo (PHP, HTML e CSS) cliccando sul link qui sotto: