Client SSH gratis per Mac: chiavi, SFTP e tunnel

Un Raspberry Pi, un NAS, un server in cloud: prima o poi serve entrarci in SSH. Sul Mac basta il Terminale per iniziare; ecco come farlo bene, con le chiavi al posto delle password, e quando conviene passare a un client con interfaccia.

· 4 min di lettura · Enrico Fanucchi

In breve: sul Mac SSH c'è già: apri il Terminale e scrivi ssh utente@indirizzo. Per non digitare più la password crea una chiave con ssh-keygen -t ed25519 e copiala sul server con ssh-copy-id; per non ricordare indirizzi e porte usa il file ~/.ssh/config. Se gestisci più server e vuoi file, tunnel e chiavi a portata di clic, un client SSH come Termina (gratuito, per macOS 15 o successivo) tiene tutto in un elenco e protegge le chiavi con Touch ID.

Collegarsi dal Terminale

Ogni Mac ha il client OpenSSH. Apri Terminale (in Applicazioni › Utility) e scrivi:

ssh pi@192.168.1.50
ssh deploy@server.example.com -p 2222

La prima volta il Mac mostra l'impronta del server e chiede se fidarsi. Confrontala con quella del server (ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub, da eseguire sul server) e rispondi yes. Se un giorno l'impronta cambia senza che tu abbia reinstallato il server, non collegarti: potrebbe essere un attacco.

Le chiavi: niente più password

Una chiave SSH è più sicura di una password e ti evita di digitarla ogni volta. Si crea una volta sola sul Mac:

ssh-keygen -t ed25519 -C "il-mio-mac"
ssh-copy-id pi@192.168.1.50

Il primo comando crea la coppia di chiavi in ~/.ssh/ (scegli una passphrase), il secondo aggiunge la chiave pubblica al file ~/.ssh/authorized_keys del server. Da quel momento ssh pi@192.168.1.50 entra senza chiedere la password del server. La chiave privata (id_ed25519, senza .pub) non va mai copiata altrove.

Il file ~/.ssh/config: un nome per ogni server

Invece di ricordare utenti, porte e chiavi, dai un nome a ogni server in ~/.ssh/config:

Host homelab
    HostName 192.168.1.50
    User pi

Host web
    HostName server.example.com
    User deploy
    Port 2222
    IdentityFile ~/.ssh/id_ed25519

Ora basta ssh homelab. Lo stesso file serve anche per i jump host e i tunnel, ed è quello che i client SSH sanno importare.

Tunnel e jump host

  • Tunnel locale (-L): ssh -L 5432:127.0.0.1:5432 web rende il database PostgreSQL del server raggiungibile sul Mac all'indirizzo 127.0.0.1:5432, senza esporlo su Internet.
  • Tunnel remoto (-R): fa il contrario, apre sul server una porta che porta al tuo Mac.
  • Jump host (-J): ssh -J bastion db-interno raggiunge un server che si vede solo passando da un altro. Nel config si scrive ProxyJump bastion.
  • Inoltro dell'agente (-A): permette a git sul server di usare la tua chiave senza copiarla. Attivalo solo sui server di cui ti fidi.

Quando il Terminale non basta

Con uno o due server il Terminale va benissimo. Con tanti server, tunnel da aprire e chiudere e file da modificare, le cose da ricordare si moltiplicano: quale chiave va con quale server, quale porta ha il tunnel del database, in che cartella era quel file di configurazione. Qui un client SSH con interfaccia fa risparmiare tempo. Le alternative più note su Mac sono a pagamento o con le funzioni migliori in abbonamento; Termina è gratuito e nativo.

Termina su Mac: elenco dei server a sinistra e terminale a destra
Termina su Mac: elenco dei server a sinistra e terminale a destra
  • Elenco dei server con gruppi, colori e icone; Connessione rapida per scrivere utente@host come nel Terminale.
  • Password e chiavi nel Portachiavi, sbloccate con Touch ID. Termina può anche creare la chiave dentro il Secure Enclave del Mac: non si può esportare né copiare, nemmeno volendo.
  • File via SFTP accanto al terminale: trascini per caricare, apri un file di testo per modificarlo sul server.
  • Tunnel -L e -R con stato e traffico in tempo reale, jump host fino a 4 salti e inoltro dell'agente.
  • Snippet con variabili come {{host}} e {{service}}, cronologia per ogni server, due sessioni affiancate con ⌘D.

Portare in Termina i server che hai già

Se hai già un ~/.ssh/config, non serve riscrivere niente: in Termina scegli File › Importa da ~/.ssh… e seleziona la cartella .ssh nella tua cartella Inizio (è nascosta: nel pannello premi ⌘⇧. per vederla). Termina legge Host, HostName, User, Port, IdentityFile, ProxyJump, i tunnel e ForwardAgent, con le chiavi private e gli host già fidati di known_hosts. Vedi un'anteprima e scegli cosa importare; i tuoi file non vengono modificati.

Importa da ~/.ssh: anteprima dei server, con jump host e chiavi incluse
Importa da ~/.ssh: anteprima dei server, con jump host e chiavi incluse

Sessioni che non si perdono: tmux

Se la connessione cade (Wi‑Fi, Mac in stop) la shell sul server si chiude e con lei i comandi in corso. Per i lavori lunghi usa tmux sul server: in Termina scrivi un nome nel campo sessione tmux del server e a ogni riconnessione ritrovi la stessa shell, con tutto ancora in esecuzione. Dal Terminale lo stesso si ottiene con ssh -t homelab tmux new-session -A -s lavoro.

Se qualcosa non va

MessaggioCosa fare
Permission denied (publickey)La chiave pubblica non è in ~/.ssh/authorized_keys sul server, oppure i permessi sono troppo larghi: sul server chmod 700 ~/.ssh e chmod 600 ~/.ssh/authorized_keys.
Connection refusedIl server SSH non è attivo o ascolta su un'altra porta: controlla Port e che il servizio sshd sia avviato.
Host key verification failedL'impronta del server è cambiata. Se l'hai reinstallato, rimuovi la vecchia con ssh-keygen -R indirizzo; altrimenti non collegarti.
Indirizzi 100.x o *.ts.net irraggiungibiliAccendi Tailscale sul Mac.

Domande frequenti

Serve un programma per usare SSH sul Mac?

No: il Terminale del Mac ha già il comando ssh. Un client come Termina serve quando hai molti server e vuoi file, tunnel e chiavi in un'interfaccia, con Touch ID.

Esiste un client SSH gratis per Mac?

Sì. Oltre al Terminale, Termina è un client SSH nativo e gratuito per macOS 15 o successivo, con SFTP, port forwarding, jump host e import da ~/.ssh, senza account.

Dove salva le password un client SSH?

Dipende dal client. Termina le salva solo nel Portachiavi del Mac, sbloccate con Touch ID, e con la sincronizzazione iCloud le cifra end-to-end. Le chiavi create nel Secure Enclave non escono mai dal chip.

Come apro la cartella .ssh nascosta sul Mac?

Nel Finder o in un pannello Apri premi ⌘⇧. (Comando, Maiuscole e punto) per mostrare i file nascosti; oppure nel Terminale scrivi open ~/.ssh.