raspberrywindowssshnginxdevops

Web Dashboard per lo Shutdown Remoto: PC Windows da Raspberry Pi

3 min di lettura
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.

  1. Tasto destro sul file > Proprietà > Securità > Avanzate.
  2. Clicca su Disabilita ereditarietà e scegli “Rimuovi tutti i permessi ereditati”.
  3. Aggiungi l’utente SYSTEM e il gruppo Administrators con permessi di “Lettura” e “Controllo completo”.
  4. 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:

👉 Clicca qui per visualizzare il codice sorgente RAW