ssh

Accedere a server, eseguire comandi e creare tunnel cifrati.

Prima di eseguire

Al primo accesso, verificare l’impronta della chiave host tramite un canale attendibile. -N attiva solo gli inoltri; Ctrl+C interrompe questi tunnel in primo piano. -L risolve e raggiunge la destinazione dal server SSH; -R la raggiunge da questo computer. L’ascolto remoto dipende dalle regole di inoltro del server; il binding su loopback dipende anche da GatewayPorts. ExitOnForwardFailure verifica l’avvio dell’inoltro, non ogni destinazione successiva. -D offre SOCKS, non una VPN: configurare separatamente il client, incluso il DNS remoto se supportato. Oscurare indirizzi, nomi utente e percorsi delle chiavi prima di condividere log dettagliati.

Esempi

Accedere all’account remoto, verificare la chiave host e autenticarsi.

ssh alice@server.example.com

Scegliere porta 2222 e chiave; IdentitiesOnly limita le identità proposte.

ssh -p 2222 -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes alice@server.example.com

Raggiungere la destinazione tramite un bastion host con ProxyJump (-J).

ssh -J alice@bastion.example.com alice@internal.example.com

Inoltro locale: la porta 15432 raggiunge il database attraverso il server.

ssh -N -L 127.0.0.1:15432:db.internal.example.com:5432 -o ExitOnForwardFailure=yes alice@server.example.com

Inoltro remoto: la porta loopback 18080 del server raggiunge la porta 8080 di questo computer.

ssh -N -R 127.0.0.1:18080:127.0.0.1:8080 -o ExitOnForwardFailure=yes alice@server.example.com

Creare un listener SOCKS locale su 127.0.0.1:1080.

ssh -N -D 127.0.0.1:1080 -o ExitOnForwardFailure=yes alice@server.example.com

Diagnosticare con log dettagliati e dieci secondi di timeout per la connessione.

ssh -vvv -o ConnectTimeout=10 alice@server.example.com

Connettiti passando in ordine da due host intermedi. Il client autentica ogni passaggio; verifica tutte le chiavi host.

ssh -J alice@jump1.example.com,alice@jump2.example.com alice@target.example.com

Mostra le impostazioni effettive dopo Host e Include. L’output può contenere dettagli sensibili della connessione.

ssh -G alice@server.example.com

Esegui un comando remoto e torna alla shell locale. Usa le virgolette appropriate per la shell remota.

ssh alice@server.example.com 'uptime'

Crea e riutilizza una connessione, controllala e chiudi la principale. Proteggi ~/.ssh; la chiusura termina anche le sessioni dipendenti.

ssh -M -S ~/.ssh/securepipes-%C -o ControlPersist=10m -fN alice@server.example.com
ssh -S ~/.ssh/securepipes-%C alice@server.example.com
ssh -S ~/.ssh/securepipes-%C -O check alice@server.example.com
ssh -S ~/.ssh/securepipes-%C -O exit alice@server.example.com

Elenca categorie di query, algoritmi di chiave e cifrari. Il supporto del client non garantisce l’accettazione del server.

ssh -Q help
ssh -Q key
ssh -Q cipher

Controlla la voce known_hosts e la sua impronta. Rimuovila solo dopo aver verificato indipendentemente il cambio di chiave; usa host e porta esatti.

ssh-keygen -F server.example.com -l
ssh-keygen -R server.example.com

Usa modalità non interattiva e timeout negli script. Configura prima autenticazione e fiducia nell’host; le richieste interattive falliscono.

ssh -o BatchMode=yes -o ConnectTimeout=10 alice@server.example.com

Usa ProxyCommand con -W tramite un host intermedio. ProxyJump è generalmente più semplice; verifica entrambe le chiavi host.

ssh -o 'ProxyCommand=ssh -W %h:%p alice@bastion.example.com' alice@target.example.com

Crea un listener SOCKS sul loopback del server. Altri utenti e processi locali possono accedervi; il server deve consentire l’inoltro.

ssh -N -R 127.0.0.1:1080 -o ExitOnForwardFailure=yes alice@server.example.com

Configura sonde SSH cifrate e timeout di connessione. Rilevano un peer che non risponde, ma non garantiscono la riconnessione.

ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ConnectTimeout=10 alice@server.example.com

Opzioni ed esempi

-p portComune

Connettersi alla porta del server specificata.

Esempio
ssh -p 2222 alice@server.example.com
-i identity_fileComune

Utilizzare il file della chiave privata specificato; proteggerlo e non condividerlo mai.

Esempio
ssh -i ~/.ssh/id_ed25519 alice@server.example.com
-l login_name

Specificare il nome di accesso remoto.

Esempio
ssh -l alice server.example.com
-J destinationComune

Connettersi tramite un host di salto SSH.

Esempio
ssh -J alice@bastion.example.com alice@internal.example.com
-L address:port:host:hostportComune

Inoltra una porta di ascolto locale a una destinazione raggiunta dal server SSH.

Esempio
ssh -N -L 127.0.0.1:15432:db.internal.example.com:5432 alice@server.example.com
-R address:port:host:hostportComune

Inoltra una porta di ascolto remota a una destinazione raggiunta dal computer locale. I criteri del server possono limitare l'associazione.

Esempio
ssh -N -R 127.0.0.1:18080:127.0.0.1:8080 alice@server.example.com
-D address:portComune

Crea un ascoltatore SOCKS locale. Configura ciascun client per utilizzarlo; questa non è una VPN.

Esempio
ssh -N -D 127.0.0.1:1080 alice@server.example.com
-NComune

Non eseguire un comando remoto; utile solo per l'inoltro.

Esempio
ssh -N -D 127.0.0.1:1080 alice@server.example.com
-o option=valueComune

Imposta un'opzione ssh_config per questa invocazione. La riuscita della configurazione dell'inoltro non garantisce che una destinazione sia raggiungibile in seguito.

Esempio
ssh -o ExitOnForwardFailure=yes alice@server.example.com
-F configfile

Utilizzare un file di configurazione client alternativo.

Esempio
ssh -F ~/.ssh/lab_config alice@server.example.com
-v / -vvvComune

Stampa output diagnostico; più caratteri v aumentano i dettagli. I registri possono contenere informazioni di connessione sensibili.

Esempio
ssh -vvv alice@server.example.com
-4 / -6

Utilizza rispettivamente solo IPv4 o solo IPv6.

Esempio
ssh -4 alice@server.example.com
-C

Richiedi la compressione. Potrebbe non migliorare il traffico già compresso.

Esempio
ssh -C alice@server.example.com
-T / -t

Disabilita o richiedi uno pseudo-terminale, rispettivamente.

Esempio
ssh -t alice@server.example.com
-A

Abilita l'inoltro dell'agente. Un host remoto compromesso può richiedere firme all'agente inoltrato; utilizzare solo con host fidati.

Esempio
ssh -A alice@server.example.com
-G

Stampa la configurazione effettiva del client dopo aver valutato le regole Host e Match.

Esempio
ssh -G lab
-V

Stampa la versione del client SSH installata.

Esempio
ssh -V

Riferimenti ufficiali

Verificato il 27 ottobre 2026