Learning Center
Sistema: Linux

Come copiare file tramite SSH

10 ott 2025
Hostman Team
Hostman Team

Il protocollo SSH (Secure Shell) è un protocollo di rete utilizzato per la gestione remota dei sistemi operativi tramite linea di comando ed è ampiamente considerato lo standard per l’accesso remoto alle macchine *nix. Consente l’accesso sicuro a un server, l’esecuzione di comandi remoti, la gestione dei file (creazione, eliminazione, copia, ecc.) e altro ancora. La maggior parte dei provider cloud richiede SSH per accedere ai propri servizi. In questo articolo vedremo come copiare file tramite SSH su sistemi Windows e Linux.

Come funziona SSH
Copia link

SSH può trasmettere in modo sicuro qualsiasi tipo di dato (audio, video, dati di protocollo) attraverso un canale crittografato. A differenza di protocolli obsoleti e non sicuri come Telnet e rlogin, SSH garantisce la riservatezza e l’autenticità dei dati — elementi fondamentali per la comunicazione su Internet.

Ecco come si stabilisce una connessione sicura tra client e server:

  1. Connessione TCP: per impostazione predefinita, il server ascolta sulla porta 22. Entrambe le parti condividono un elenco di algoritmi supportati (compressione, crittografia, scambio di chiavi) e concordano quali utilizzare.

     

  2. Autenticazione: per evitare furti d’identità, entrambe le parti verificano le proprie identità utilizzando la crittografia asimmetrica (chiavi pubbliche/private). Il server viene autenticato per primo. Alla prima connessione, il client mostra un avviso con i dettagli del server. Le chiavi dei server fidati vengono memorizzate in /home/<username>/.ssh/known_hosts.

     

  3. Generazione della chiave: una volta verificato il server, entrambe le parti generano una chiave simmetrica per crittografare tutti i dati scambiati.

     

  4. Autenticazione dell’utente: avviene tramite password o chiave pubblica inviata dal client e memorizzata sul server in /home/<username>/.ssh/authorized_keys.

L’implementazione più popolare su Linux è OpenSSH, preinstallata nella maggior parte delle distribuzioni (Ubuntu, Debian, RHEL, ecc.). Su Windows si utilizzano client come PuTTY o MobaXterm. Da Windows 10 e Server 2019, gli strumenti OpenSSH sono disponibili nativamente.

Copiare file tramite SSH
Copia link

Due strumenti principali per copiare file su Linux sono scp e sftp. Entrambi sono inclusi in OpenSSH.

SSH supporta due versioni di protocollo: 1 e 2. OpenSSH supporta entrambe, ma la versione 1 è raramente utilizzata.

Configurare l’autocompletamento
Copia link

Per attivare l’autocompletamento con Tab usando scp, configura l’autenticazione con chiave pubblica:

Generare una coppia di chiavi:

ssh-keygen

Esempio di output:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

Per impostazione predefinita, le chiavi (id_rsa per quella privata e id_rsa.pub per quella pubblica) vengono salvate in ~/.ssh/.

Copiare la chiave pubblica sulla macchina remota:

ssh-copy-id [username]@[ip-address]

Dopo aver inserito la password dell’utente, apparirà un messaggio di conferma.

Secure Copy (SCP)
Copia link

Per piccoli trasferimenti di dati (ad es. file di configurazione), scp è l’opzione ideale.

Copiare da locale a remoto:

scp test.txt user@192.168.1.29:/home/user/

Copiare più file:

scp test1.txt test2.txt user@192.168.1.29:/home/user/

Copiare da remoto a locale:

scp user@192.168.1.29:/home/user/test.txt ~/

Copiare directory:

scp -r testdir user@192.168.1.29:/home/user/

Copiare da remoto a remoto:

scp gendo@192.168.1.25:/home/gendo/test.txt user@192.168.1.29:/home/user/

Secure FTP (SFTP)
Copia link

SFTP è un altro strumento incluso in OpenSSH. A partire da OpenSSH 9.0, scp utilizza SFTP come impostazione predefinita al posto del vecchio protocollo SCP/RCP.

A differenza dell’FTP classico, sftp trasmette i dati crittografati attraverso un tunnel sicuro e non richiede un server FTP separato.

Esempio d’uso:

sftp misato@192.168.1.29

sftp> ls
sftp> lcd testdir/
sftp> get test.txt
sftp> bye

Gestori di file grafici come Midnight Commander e Nautilus utilizzano anch’essi sftp. In Nautilus, il server remoto appare come una cartella locale, ad esempio user@ip.

Image1

Copying Files Over SSH on Windows
Copia link

Su Windows, lo strumento da riga di comando pscp di PuTTY viene utilizzato per copiare i file.

Copiare sul server:

pscp C:\server\test.txt misato@192.168.1.29:/home/misato/

Copiare dal server:

pscp misato@192.168.1.29:/home/misato/test.txt C:\file.txt

Elencare i file sul server remoto:

pscp -ls user@192.168.1.29:/home/misato

Usare virgolette per percorsi con spazi:

pscp "C:\dir\bad file name.txt" misato@192.168.1.29:/home/misato/

Mostrare l’aiuto:

pscp

Conclusione
Copia link

Abbiamo visto come copiare file da e verso un server utilizzando il protocollo sicuro SSH. Se lavori con server cloud, comprendere SSH è essenziale — è il metodo standard per l’accesso remoto alle macchine *nix ed è una parte fondamentale del lavoro quotidiano di DevOps e amministrazione di sistema.