ssh user@hostname
Connessione base a un server remoto. Se l'utente locale e quello remoto coincidono, basta ssh hostname.
$ ssh steven@178.104.35.42
steven@178.104.35.42's password:
Last login: Fri Mar 27 14:30:00 2026
steven@deltoide:~$
ssh -p 2222 user@hostname
Connessione su porta non standard. Molti server spostano SSH dalla porta 22 per ridurre il rumore degli scanner automatici.
$ ssh -p 2222 deploy@staging.example.com
deploy@staging:~$
ssh-keygen -t ed25519 -C "commento"
Genera una coppia di chiavi. ed25519 e il tipo consigliato: piu sicuro e veloce di RSA. Il commento -C serve per identificarla (tipicamente la tua email).
$ ssh-keygen -t ed25519 -C "steven@stevetech.it"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/steven/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Your identification has been saved in /home/steven/.ssh/id_ed25519
Your public key has been saved in /home/steven/.ssh/id_ed25519.pub
ssh-copy-id user@hostname
Copia la tua chiave pubblica sul server e la aggiunge a ~/.ssh/authorized_keys. Dopo non ti chiede piu la password.
$ ssh-copy-id steven@178.104.35.42
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed
steven@178.104.35.42's password:
Number of key(s) added: 1
$ ssh steven@178.104.35.42 # niente password!
scp file.txt user@host:/path/
Copia file via SSH. Funziona come cp ma tra macchine diverse. Usa -r per cartelle intere. La direzione si inverte: scp user@host:/remote/file ./local/.
# Upload: locale → server
$ scp deploy.sh steven@deltoide:/home/steven/scripts/
# Download: server → locale
$ scp steven@deltoide:/var/log/nginx/error.log ./
# Cartella intera
$ scp -r ./my-project/ steven@deltoide:/home/steven/
ssh user@host "comando"
Esegui un comando sul server senza aprire una sessione interattiva. Perfetto per check veloci o script.
$ ssh steven@deltoide "df -h / && uptime"
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 75G 5.8G 69G 8% /
19:30:00 up 42 days, 3:15, 1 user, load average: 0.08, 0.03, 0.01