Shellhub: Accedere alle proprie macchine via SSH da remoto
ShellHub è una piattaforma di gestione dell'accesso remoto per dispositivi basati su Linux. Permette di accedere in modo sicuro ai terminali dei dispositivi da qualsiasi luogo, senza bisogno di IP pubblici o configurazioni di port forwarding.
Caratteristiche principali:
• Accesso SSH centralizzato: Gestisce connessioni SSH attraverso un'unica interfaccia web.
• Nessun port forwarding: Funziona anche dietro NAT o firewall.
• Supporto multiutente: Permette di gestire più utenti e permessi granulari.
• Audit e logging: Tiene traccia delle connessioni per motivi di sicurezza.
• API REST: Consente integrazione con altri servizi e automazioni.
• Self-hosted: Può essere installato su un proprio server.
Installazione:
Accediamo al nostro server e, se ancora non l'abbiamo fatto, installiamo docker e docker compose (se non sai come fare guarda il mio tutorial su Come installare Docker e Docker Compose).
Procediamo installallando git e make:
sudo apt-get install git make -y
Cloniamo il repositori Github ufficiale di Shellhub, quindi da terminale digitiamo:
git clone -b v0.18.0 https://github.com/shellhub-io/shellhub.git
Adesso lanciamo il comando:
make keygen
E successivamente avviamo il container:
make start
Adesso in automatico il sistema effettuerà il pull dell'immagine docker ed avvierà il container.

Quando tutto è completo, ci basterà accedere sul browser e digitare l'indirizzo ip della nostra macchina (la porta in ascolto è la 80 quindi non è necessario specificarla). A video riceveremo una schermata uguale a questa:

A questo punto torniamo nel nostro amato terminale e digitiamo (all'interno della cartella di ShellHub):
./bin/setup
Questo comando ci genererà un codice che dobbiamo andare a copiare all'interno della schermata principale di Shellhub aperta in precedenza, una volta copiato il codice clicchiamo su SETUP. Inseriamo i dati di accesso che vogliamo creare e clicchiamo su CREATE ACCOUNT.
Effettuato l'accesso, ci ritroveremo davanti alla schermata principale di ShellHub, aggiungiamo un nuovo device cliccando sulla rispettiva voce:

Copiamo il codice fornito dalla schermata successiva ed incolliamolo sul device che vogliamo collegare a ShellHub, a questo punto sul nostro device da collegare partirà un nuovo container docker che collegherà il server all'istanza di ShellHub, per poter collegare effettivamente i device andiamo sulla schermata "Devices" (nella home a destra), successivamente ci rechiamo nella schermata "Pending" e dal menù ad hamburger sulla destra clicchiamo su "Accept" e successivamente confermiamo.

A questo punto se il nostro server non è protetto da una chiave SSH ci basterà solo andare nei devices accettati e collegarci utilizzando nome utente e password:

Se invece per collegarci tramite ssh utilizziamo una chiave privata dobbiamo importarla sul prompt prima del collegamento, per farlo ci basterà recarci sulle impostazioni (Settings) e successivamente cliccare su Private Keys, aggiungiamo una chiave privata cliccando su "Add private keys", le chiavi supportate da ShellHub sono PEM (PKCS#1, PKCS#8) ed il formato OpenSSH. Diamo un nome alla chiave e salviamo.

Quando ci collegheremo utilizzeremo la chiave privata importata in precedenza e saremo dentro la nostra shell.
Come effettuare l'upgrade di ShellHub
Accediamo alla directory di ShellHub
cd shellhub/
Stoppiamo il container con il comando make:
make stop
Recuperiamo le modifiche remote:
git remote update origin
E facciamo il checkout della nuova versione stabile (consultabile dal repo ufficiale GitHub https://github.com/shellhub-io/shellhub/releases)
git checkout v0.19.0
E procediamo ad avviare nuovamente l'istanza con make:
make start