Lavori su più server, hai due PC, e ogni volta che apri il terminale è una piccola avventura. Dove ho messo quella chiave? Era su questo PC o sull'altro? Perché dice permission denied?
Se ti suona familiare, continua a leggere
Il problema (che in tanti non ammettono)
Gestire le chiavi SSH è una di quelle cose che sembra semplice finché non hai tre server, due computer e un collega che ti chiede perché non riesci ad accedere alla VM del cliente.
Per un po' me la sono cavata copiando chiavi da un PC all'altro, rinominando file, dimenticandomi quale chiave corrispondeva a quale server. Finché non ho deciso di sistemare le cose per bene.
La soluzione? 1Password come SSH Agent. Le chiavi stanno tutte lì, cifrate, sincronizzate su ogni dispositivo, e il terminale le usa automaticamente senza che tu debba ricordarti nulla.
Cos'è un SSH Agent?
Prima di entrare nel pratico, un secondo di teoria.
Quando ti connetti a un server via SSH, il server chiede: "Chi sei?". Il tuo PC risponde presentando una chiave privata — un file che dimostra la tua identità.
L'SSH Agent è un programma che tiene le chiavi in memoria e le fornisce al terminale quando servono. Normalmente è un processo di sistema. Con 1Password, diventa il tuo portachiavi personale: sicuro, sincronizzato, protetto dal tuo PIN o impronta digitale.
Step 1 - Abilita SSH Agent in 1Password
Apri 1Password
Vai su Impostazioni → Developer
Attiva "Use the SSH Agent"
Fatto. 1Password è ora pronto a fare da intermediario tra il tuo terminale e le tue chiavi.
Step 2 - Salva le tue chiavi in 1Password
Se hai già delle chiavi SSH sul tuo PC (nella cartella ~/.ssh/), importale:
Clicca New Item → SSH Key
Clicca "Add Private Key" → "Import from file"
Seleziona il file della chiave privata — quello senza.pub
Dagli un nome descrittivo, tipo server-produzione o vm-cliente
Salva
La chiave privata non ha estensione (es. id_ed25519). Quella pubblica ha .pub. Importa sempre la privata.
Se non hai ancora una chiave, puoi generarla direttamente da 1Password: New Item → SSH Key → Generate
Step 3 - Configura il file SSH
Ogni connessione SSH può essere configurata nel file ~/.ssh/config. È come una rubrica: invece di scrivere ssh -p 2222 utente@192.168.1.100 ogni volta, scrivi una volta sola le istruzioni e poi usi solo ssh nome-server.
Host *
IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
Host nome-server
HostName <IPodominio>
User <utente>
Port 22
Code language:HTML, XML(xml)
Linux:
Host *
IdentityAgent ~/.1password/agent.sock
Host nome-server
HostName <IPodominio>
User <utente>
Port 22
Code language:HTML, XML(xml)
Windows:
Host *
IdentityAgent "\\.\pipe\openssh-ssh-agent"
Host nome-server
HostName <IPodominio>
User <utente>
Port 22
Code language:HTML, XML(xml)
Il blocco Host * in cima vale per tutti i server — non va ripetuto. Per ogni server aggiuntivo, aggiungi semplicemente un nuovo blocco Host.
Salva il file:
nano: Ctrl+X → Y → Invio
notepad: Ctrl+S
Step 4 - Connettiti
ssh nome-server
1Password ti chiederà di confermare con PIN o impronta digitale la prima volta. Poi si ricorda e non te lo chiede più per quella sessione.
Niente password da ricordare, niente file da cercare.
Step 5 - Secondo PC? Zero fatica
Questo è il punto che mi ha convinto definitivamente.
Sul secondo PC basta:
Installare 1Password e accedere con il proprio account
Abilitare SSH Agent (Impostazioni → Developer → Use the SSH Agent)
Ricreare il file ~/.ssh/config
Le chiavi sono già lì, sincronizzate. Nessun file da copiare, nessuna pennetta USB, nessun "ma dove avevo salvato quella chiave?".
Un consiglio finale
Una volta importate le chiavi in 1Password, puoi eliminare quelle locali in ~/.ssh/. Tenerle in due posti è ridondante — e lasciare file in giro è sempre un rischio inutile.
Se dovessi perdere il PC domani, le tue chiavi sono al sicuro in 1Password. Prendi il nuovo PC, accedi, e sei operativo in cinque minuti.
La sicurezza è un sistema, non un singolo strumento
Proteggere l'accesso ai server con le chiavi SSH è un tassello importante, ma la sicurezza ha molte facce. Se ti interessa approfondire un altro aspetto affascinante — come proteggere i dati personali garantendo l'anonimato senza renderli inutili — ti consiglio di leggere il mio articolo sulla k-anonymity: la tecnica che sta alla base di strumenti come Have I Been Pwned, e che spiega perché puoi verificare se la tua password è stata compromessa senza mai inviarla in chiaro.
SSH in pratica: un progetto reale
Se vuoi vedere come la gestione SSH si inserisce in un progetto infrastrutturale completo, ho pubblicato su GitHub nextcloud-oci-terraform: un'infrastruttura self-hosted su Oracle Cloud Free Tier, deployata interamente con Terraform — a costo zero.
L'idea era semplice: smettere di affidarsi a servizi cloud di terze parti per i propri dati e avere tutto sotto controllo, su un server proprio. In pratica si è trasformata in un piccolo ecosistema: Nextcloud per file, calendario e contatti, Jellyfin come media server per lo streaming video, Komga per leggere fumetti e manga direttamente dal browser o usarlo come estensione per leggere dall'app Mihon/Yokai, il tutto monitorato con Prometheus e Grafana e con backup automatici cifrati ogni notte via BorgBackup.
Il punto di ingresso per gestire tutto questo? SSH. Ogni aggiornamento, ogni configurazione, ogni debug parte da una connessione SSH al server — con le chiavi gestite esattamente come descritto in questo post. Avere le chiavi in ordine non è un dettaglio: è quello che rende possibile lavorare in modo fluido su un'infrastruttura del genere senza impazzire.
Sono entusiasta di condividere che ho recentemente completato l'AI Engineering Bootcamp: Build, Train and Deploy Models with AWS SageMaker della scuola Zero To Mastery tenuto da Patrik Szepesi! Dopo giornate di apprendimento intensivo e progetti pratici, ho acquisito competenze cruciali che mi hanno fatto progredire nel mio percorso come ingegnere AI. Cos'è AWS SageMaker? Per […]
Sì, avete letto bene: due volte. Perché quando decido di complicarmi la vita, lo faccio con una certa eleganza: passare a una tastiera meccanica split con layout americano mentre costruisco un workflow da tastiera con Linux e Neovim. Prima mossa geniale: passare a una tastiera meccanica split, quelle divise in due metà che ti fanno […]