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!
Sommario
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:
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)
Ti va di darmi una mano?
Il contenuto di questo sito è completamente gratuito senza pubblicità invasive e il fine non è certo guadagnare …ma mantenere un sito ha un costo. Se ti va di darmi una mano per sostenere le spese o ti va di sostenere questo progetto hai le seguenti modalità:
- Donazione con Paypal:
- Regalami un caffè su Buymeacoffee:
- Effettua i tuoi acquisti Amazon a partire da QUESTO LINK (o tramite i prodotti sotto)
- Acquistare i tuoi prodotti Shelly usando QUESTO LINK
- Effettuare i tuoi acquisti AliExpress usando QUESTO LINK
Pingback: SSD con TRIM su Raspberry Pi4, Pi3, Pi2 – la guida definitiva con procedura ufficiale! – Henrik Sozzi – Technology
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
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.
Ciao anche me da lo stesso errore, puoi dirmi come hai risolto? Grazie
To import the authorized keys:
1. Install the Terminal & SSH add-on
2. Open the terminal and run the following command:
ha os import
Yes this is the process to do today (not at time the user asked). There are two options now: what you mentioned and reboot (as OS load the keys will be imported). Thank you for that (I’ll update the post to reflect recent changes)
To import the authorized keys:
1. Install the Terminal & SSH add-on
2. Open the terminal and run the following command:
ha os import
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
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)”.
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
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
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.
Great guide (with the help of Google translate 😉 ) Works straight away.
Thank you!
Thank you so much for the appreciation 😊
Ciao Henrik.
Per quanto riguarda la tua nota sulla variazione della modalitá di generazione della chiave, sembra che la documentazione sia stata aggiornata.
Nello specifico a questo link (https://developers.home-assistant.io/docs/operating-system/debugging/#home-assistant-operating-system), viene indicato che l’importazione della chiave, ora, avviene tramite l’addon SSH con il comando “ha os import”.
Ho quindi eseguito la tua procedura, modificando solo il modo di importare la chiave come indicato nella doc ufficiale e tutto funziona perfettamente. L’ho testato su 2 sistema diversi (raspberry e odroid) con successo.
Magari puó tornare utile a qualcuno…
Ti ringrazio molto Gino. Ho visto la doc e quella parte di ha os import non è un problema. Mi riferivano due utenti, però, che generando la chiave come specificato nell’articolo non gli funzionava mentre mettendo una password si. Per questo ho messo la nota, in attesa di trovare il tempo di verificarlo.
Ciao,
chiedo un aiuto
ho seguito la guida per connettermi con putty per abilitare il trim.
tuttavia ricevo il messaggio Network error: Connection refused.
ho riprovato a ricopiare la stringa da mettere nel file “authorized_keys” ma niente da fare
Premetto che l’addon ssh& web terminal mi funziona da hassio
non capisco cosa possa essere, non so se dipende da qualche settaggio errato.
allego lo script:
init_commands: []
packages: []
share_sessions: false
ssh:
allow_agent_forwarding: false
allow_remote_port_forwarding: false
allow_tcp_forwarding: false
authorized_keys: []
compatibility_mode: false
password: mia password
sftp: false
username: hassio
zsh: true
mia installazione:
Home Assistant 2022.8.6
Supervisor 2022.08.3
Operating System 8.4
grazie
Ciao, perdonami se ti rispondo solo ora, ero in vacanza e la notifica è andata nel dimenticatoio… 🙁
Sei poi riuscito nel frattempo? Tieni conto che l’addon SSH non c’entra nulla con la procedura, stiamo sbloccando una sessione SSH dev a monte degli addon. Se segui la procedura correttamente deve funzionare, verifica di seguire tutti i passaggi per filo.
Se proprio non ci riesci puoi comunque usare la console fisica (porta hdmi e tastiera usb) per portare a termine l’attivazione di TRIM.
Ciao Henrik, avevo seguito questa guida 3 anni fa senza problemi. adesso le cose su HA OS sono un po cambiate e non riesco più ad importare la chiave pubblica nel raspeberry (anche riavviando). cosa consigli?
Ciao Antonio, ti consiglio di leggere la nota con sfondo giallo proprio in cima all’articolo 🙂