You are currently viewing Aprire la porta SSH 22222 su Home Assistant – Guida dettagliata

Aprire la porta SSH 22222 su Home Assistant – Guida dettagliata

  • Autore dell'articolo:
  • Categoria dell'articolo:Home Assistant
  • Commenti dell'articolo:11 commenti
  • Ultima modifica dell'articolo:27 Settembre 2021

Appena installato Home Assistant per la prima volta ho letto di questa famigerata porta che però io avevo chiusa. Anche installando gli add-on SSH esistenti il risultato era sempre diverso da quanto atteso. Perchè? Perchè gli add-on SSH sono container docker e quindi la visione è limitata a tale ambito. La porta 22222, invece, permette l’accesso al sistema operativo nudo e crudo, a monte di Docker. A proposito si chiama BuildRoot. Da tale porta è possibile eseguire i soliti comandi che sei abituati ad utilizzare sulle distribuzioni Linux più usate con qualche limitazione. Al contrario delle Debian based (come Ubuntu) non ci sono strumenti come apt-get o come yum per Fedora o CentOS. Questo perchè è una distribuzione embedded minimale che nel nostro caso serve a far girare docker e i vari container, come Home Assistant stesso, con il minore overhead possibile.

Una premessa importante prima di continuare. Il concetto di Home Assistant OS è che non ci si deve preoccupare dei problemi di gestione del sistema operativo in quanto pensa a tutto Home Assistant OS dietro alle quinte tramite gli aggiornamenti. Tramite l’accesso a tale porta avrai una shell con cui potrai fare qualsiasi cosa e, potenzialmente, corrompere ogni cosa. Usa piedi di piombo e tutto il buon senso di cui disponi, quando fai operazioni qui.
Oltretutto tieni tale porta PRIVATA e non aprirla mai verso internet! Da grandi poteri nascono grandi rischi… 🙂

Si beh, bando alle ciance e apriamo questa porta 22222!

Iniziamo!

Partiamo con il link alla pagina ufficiale che ci dice come effettuare l’operazione dicendo che per chi non è abituato a fare questo tipo di operazione può essere un po’ complicato, motivo per cui nasce questo articolo.

Presupposto è che tu stia utilizzando un PC Windows per effettuare la procedura. Se usi un Mac dovrai adattare dei passaggi o usare una macchina virtuale Windows.

Preparativi

Partiamo con installare PuTTY, che ci servirà sia per creare la chiave che per accedere da remoto alla shell di Home Assistant. Se usi altre distribuzioni è probabile che tu ce l’abbia già, in tal caso verifica che la versione sia l’ultima.
Allo stato attuale l’ultima versione è la 0.74 e si scarica da qui. Scarica ed avvia l’installazione MSI a 32 o 64 bit a seconda del tuo sistema operativo.

In seguito ci servirà anche Notepad++ se non ce l’hai (NON CE L’HAI???) scarica l’ultima versione dal link precedente e installalo (le opzioni di default andranno benone).

Infine prepara la pendrive che userai per trasferire le informazioni su Home Assistant. Basta la più piccola che hai. L’importante è che il volume si chiami CONFIG e sia formattata con uno dei seguenti filesystem: FAT, ext4 o NTFS.

Per preparare la chiavetta clicca con il tasto destro sulla lettera dell’unità in Esplora risorse di Windows e dal menu contestuale clicca su Formatta… (attenzione che tutto il contenuto della chiavetta andrà irrimediabilmente perso) e inserisci queste opzioni (capacità a parte):

Premi Avvia e attendi il termine. A questo punto la chiavetta è pronta, lasciala inserita per dopo.

Generazione della chiave pubblica e privata

Ok, ora apri PuTTYgen dal gruppo Putty del menu Start di Windows o scrivendo Puttygen nel menu start. Questa la schermata che troverai:

Ora premi il tasto Generate e fai dei movimenti col mouse finché la barra non è completa.

A questo punto la schermata sarà così:

Premi il tasto Save private key e rispondi SI alla domanda che ti chiede se sei sicuro di salvare la chiave senza una passphrase (se la aggiungi non funzionerà con Home Assistant). Salva il file dove vuoi e conservalo lontano da occhi indiscreti in quanto chiunque in possesso di quel file avrà la possibilità di collegarsi alla porta 22222 di Home Assistant. Diciamo che, per semplicità di esempio, la salvo in c:\temp\chiave_pvt.ppk

Ora gestiamo la chiave pubblica, che dobbiamo trasferire ad Home Assistant tramite un pendrive. Seleziona dalla schermata di PuTTYgen tutto il contenuto della casella di testo superiore il cui testo inizia con ssh-rsa, facendo estrema attenzione a non tralasciare alcun carattere in cima ed in coda. Copia tale testo negli appunti.

Ora apri Notepad++ e crea un nuovo file (primo tasto a sinistra). Dal menu Formato seleziona Codifica in ANSI, Incolla nel contenuto il testo copiato prima senza apporvi alcuna modifica.
Dopodiché dal menu Modifica, Converti caratteri di fine linea e seleziona Formato UNIX (LF).

A questo punto salva questo file da Notepad++ nella pendrive chiamata CONFIG che abbiamo creato precedentemente. Il nome da assegnare al file è authorized_keys attenzione che è importante che tale file non abbia l’estensione .txt e che sia tutto minuscolo. Basta inserire queste opzioni nella finestra di selezione del nome file:

Se non sei abituato a gestire le estensioni controlla tramite esplora risorse che il nome sia corretto e senza estensione (.txt o altro). Per farlo vai nella chiavetta, dal menu superiore clicca Visualizza, premi il tasto Opzioni a destra e nel pannello Visualizzazione deseleziona l’opzione Nascondi le estensioni per i tipi di file conosciuti. Da ora in esplora risorse vedrai anche le estensioni dei file, mostrandoti il nome completo.

A questo punto estrai la chiavetta (mi raccomando, l’estrazione sicura…) e inseriscila nel tuo dispositivo Home Assistant. Dall’interfaccia di Home Assistant vai in Supervisore -> System, clicca sui tre puntini e Import from USB:

Se per qualche motivo non funzionasse puoi sempre provare premendo REBOOT in quanto al riavvio avviene la stessa importazione.

Ecco fatto, se è andato tutto bene abbiamo finito di preparare il nostro Home Assistant!

Configuriamo la connessione remota con PuTTY

Ora passiamo a configurare la connessione remota con il client che utilizzerai dal PC per accedere alla shell: PuTTY.
Apri il software che si presenta così:

Inserisci in Host Name (or IP address) l’indirizzo IP del tuo Home Assistant (nell’esempio 192.168.1.200), nella casella accanto Port inserisci 22222.
Ora espandi la voce SSH a sinistra premendo il + accanto e seleziona la voce Auth al suo interno. Nell’ultimo campo Private key file for authentication clicca su Browse e seleziona il file chiave_pvt.ppk salvato all’inizio con PuTTYgen:

Ora clicca sulla voce Data, dentro Connection sulla sinistra e nel primo campo in alto Auto-login username inserisci root:

Infine torniamo nella sezione in alto del menu a sinistra Session, scegli un nome da dare a questa connessione, nel mio esempio Home Assistant DEV e clicca su Save:

Se avessi fatto qualche errore e vuoi modificare una sessione creata selezionala, clicca Load, modifica i dati che ti interessano e clicca Save.

Ecco fatto. Ora ogni volta che aprirai PuTTY per collegarti alla shell di Home Assistant non dovrai far altro che fare doppio click su Home Assistant DEV!

Se tutto ha funzionato al doppio click ti ritroverai qui:

Shell dev SSH 22222 di Home Assistant OS

Eccoci nella shell di Linux di Home Assistant della macchina fisica, basata su BuildRoot. E’ molto minimale. Fai molta attenzione in quanto il concetto di Home Assistant OS è che non sia necessario accedere alla shell in quanto gli aggiornamenti pensano a tutto e le operazioni manuali che effettui possono comportare problemi con gli aggiornamenti. Per questo è bene limitare al minimo gli interventi di questo tipo. Ma ve ne sono alcuni che non possono ad oggi essere eseguiti se non da questa modalità (o da console) come lo spostamento della partizione dati su SSD del Raspberry Pi (se ti interessa ho scritto la guida per effettuare tale operazione)

[su_note note_color=”#ffff80″ id=”buymeacoffee”]

Ti è piaciuto questo contenuto?

Se ti è stato utile l’articolo che hai letto potresti pensare di darmi una mano offrendomi un caffè!
Oltre ad aiutarmi a star sveglio nelle nottate di ricerche e scrittura mi daresti una mano concreta nel sostenere le spese del server web, incentivandomi a produrre altri contenuti di qualità.
(se non vedi il tasto di seguito clicca QUI)

[/su_note]

Henrik Sozzi

Sono un analista programmatore per lavoro e per passione. Amo la domotica, la stampa 3D e la tecnologia in generale.

Questo articolo ha 11 commenti.

  1. Ivan

    Ciao Henrik,
    quando da hassio clicco su import from usb mi devede dare l’ok o qualcos’altro?
    Ho provato due volte tutta la procedura ma non mi funziona. Quando clicco due volte per entrare nel root mi mostra la schermata nera ma senza home assistent ed esce una finestra di errore, da quello che capisco mi dice che la chiave non corrisponde e di annullare se non sono sicuro. A me sembra di aver eseguito tutto correttamente, l’unico dubbio è quello che ho scritto all’inizio del commento

    1. Henrik Sozzi

      Ciao Ivan, no, l’importazione è un processo piuttosto opaco che non ti da feedback. Io non sapendo se avesse funzionato o no ho riavviato il supervisor per sicurezza. Da quanto dici, comunque, sembra che abbia preso il file da USB altrimenti non è proprio aperta la porta 22222 e non riusciresti a connetterti. Il fatto che invece ti dia che la chiave non è corretta sembra indicare che tu non abbia seguito correttamente il procedimento o della creazione del file dell’impostazione della chiave in putty.

      1. ElleDi

        Ciao anche me da lo stesso errore, puoi dirmi come hai risolto? Grazie

    2. ElleDi

      Ciao mi puoi dire come hai risolto? Io ho provato a fare la usb più volte ma niente da fare mi da sempre lo stesso errore.
      Ciao

  2. Gino

    Ciao Henrik,
    Inizio con il ringraziarti per le tue spledinde e utilissime guide. Continua cosí !!!!

    Ho però notato che negli ultimi tempi non e`possibile visualizzare alcune immagini. aprendone il link in un’altra finestra, da uno strano messaggio.
    Per esempio, la prima immagine del paragrafo “Generazione della chiave pubblica e privata” (il cui link è “https://i1.wp.com/henriksozzi.it/wp-content/uploads/2021/01/image-4.png?w=479&ssl=1”) riporta il seguente messaggio “We cannot complete this request, remote server returned an unexpected status code (400)”.

    1. Henrik Sozzi

      Ciao Gino, grazie per i complimenti, sono contento che ti sia utile 🙂
      Grazie per la segnalazione, però non trovo nessun malfunzionamento. Il link che mi hai segnalato funziona correttamente, provato dall’ufficio e da casa. Mostra l’immagine che dovrebbe.
      Nel sito faccio uso di Jetpack che fornisce le immagini dai cloud di WordPress anzi che dal mio webserver per velocizzare la pagina e il link che hai riportato è proprio uno di quelli del cloud WordPress.com
      Potrebbe essere che hanno avuto un temporaneo disservizio? Se invece ancora la vedi così potrebbe essere che hai qualche plugin nel browser che blocca tali richieste? (non mi viene in mente un motivo valido ma è comunque una possibilità). Certo se alla richiesta diretta ti da 400 è strano. Fammi sapere se ora funziona comunque, anche in pvt se vuoi. Scrivi a io@henriksozzi.it

  3. Beppe

    Ciao Henrik,
    ho seguito passo passo la tua procedura, ma nel momento in cui da Putty faccio doppio click su “Home Assistant DEV” mi appare il messaggio “Network error: Connection refused”.
    Gentilmente mi puoi aiutare a capire dove sto sbagliando?
    Grazie
    Beppe

    1. Henrik Sozzi

      Ciao Beppe, immagino ti sia quel Giuseppe Morselli che mi ha scritto sul gruppo Facebook di Home Assistant. Nel qual caso sei già arrivato oltre a questo punto, probabilmente, se servirà per qualcun altro, il problema dovrebbe essere che non avevi creato il file in modo corretto da importare da Home Assistant per aprire la porta dev.
      Ad ogni modo da quanto riportato in Facebook ce l’hai fatta e semplicemente era cambiata la schermata di accesso rispetto a quella presente nell’articolo.
      Ti ringrazio perchè mi hai permesso di accorgermene ed ho già corretto l’articolo per tenerlo attuale.

  4. Andreas Wierda

    Great guide (with the help of Google translate 😉 ) Works straight away.
    Thank you!

Rispondi