Come scaricare un file da un server con SSH / SCP

Gli utenti possono scaricare in modo sicuro un file da qualsiasi server remoto con SSH utilizzando lo strumento scp sulla riga di comando. Essenzialmente questo significa che puoi avere un file archiviato in modo sicuro su un server remoto e trasferirlo all'archivio locale senza dover esporre quel file al mondo esterno, perché scp offre lo stesso livello di sicurezza e richiede la stessa autenticazione di ssh.


Il download sicuro dei file con scp è rivolto principalmente agli utenti avanzati che utilizzano ssh e la riga di comando regolarmente in macOS X, bsd o linux. Per coloro che hanno esperienza adeguata nella linea di comando, usare ssh e scp per scaricare i file remoti è facile e, convenientemente, una volta completato il trasferimento dei file, la connessione remota terminerà. Questo rende scp preferenziale per sftp per i download di file veloci, anche se ovviamente potresti usare sftp se lo volessi.

Download di un file dal server remoto con SSH Secure Copy

Ciò presuppone che il server remoto abbia ssh attivo e, se si è in grado di ssh nella macchina, probabilmente avrà anche scp attivo. Se non si dispone di un server remoto per provare questo, è possibile provarlo tra macchine Mac OS X o con localhost se si abilita ssh e Remote Login sul Mac in anticipo.

La sintassi di base per utilizzare scp (copia protetta) per il download sicuro di file remoti è la seguente, sostituendo utente, server, percorso e destinazione come appropriato:

scp user@server:/path/to/remotefile.zip /Local/Target/Destination

Ad esempio, per scaricare un file sul desktop locale denominato "nomefile.zip" che si trova nella directory home dell'utente remoto "osxdaily" sul server IP 192.168.0.45, la sintassi sarebbe la seguente:

% scp [email protected]:filename.zip ~/Desktop/
Password:
filename.zip 100% 126 10.1KB/s 00:00
%

Supponendo che l'autenticazione sia corretta, il file di destinazione inizierà immediatamente a scaricare nella destinazione di destinazione, offrendo un completamento percentuale, la velocità di download e il tempo di trasferimento trascorso mentre il download del file procede.

Come al solito con la riga di comando, è importante specificare la sintassi esatta.

Se il file o il percorso ha uno spazio nel nome, puoi utilizzare le citazioni o eseguire l'escape sul percorso in questo modo:

scp [email protected]:"/some remote directory/filename.zip" ~/Desktop/

scp può anche essere usato per posizionare in modo sicuro un file su un server remoto, regolando anche la sintassi, ma ci stiamo concentrando sul download di un file piuttosto che sul caricamento dei file qui.

Se sei nuovo a ssh e testalo tu stesso, e se non ti sei mai collegato prima al server remoto, ti verrà chiesto di confermare se desideri effettivamente collegarti al computer remoto. Sembra così, e richiede una risposta "sì" o "no" prima che inizi il download.
% scp [email protected]:filename.zip ~/Desktop/
The authenticity of host '192.168.0.4 (192.168.0.4)' can't be established.
ECDSA key fingerprint is SHA256:31WalRuSLR83HALK83AKJSAkj972JJA878NJHAH3780.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.4' (ECDSA) to the list of known hosts.
Password:
filename.zip 100% 126 0.1KB/s 00:00
%

Anche in questo caso, supponendo che la connessione sia approvata e il login abbia esito positivo, il file remoto verrà scaricato dal server di destinazione all'host locale.

Puoi anche usare scp per scaricare più file da un server remoto:

scp user@host:/remote/path/\{file1.zip, file2.zip\} /Local/Path/

L'uso di ssh per i download di file remoti come questo è più appropriato per i trasferimenti sicuri che richiedono l'autenticazione. Certo, puoi anche scaricare file con curl o wget da server remoti, ma i file accessibili con arricciatura e wget tendono ad essere accessibili anche dal mondo esterno, mentre ssh e scp richiedono l'autenticazione o una chiave e utilizzano la crittografia 3DES, il che lo rende considerevole più sicuro.