# Secure copy

In informatica Secure Copy (copia sicura) o SCP è un protocollo di comunicazione utilizzato per trasferire in modo sicuro un file tra un computer locale ed un host remoto o tra due host remoti, usando il protocollo Secure Shell (SSH). In particolare il termine SCP può riferirsi ad una delle due seguenti cose tra loro correlate: il protocollo SCP o il programma SCP che implementa il suddetto protocollo.

## Protocollo SCP

Il protocollo SCP è simile al protocollo rcp di BSD, comunque diversamente da rcp, i dati sono criptati durante i trasferimenti, per evitare che a causa di sniffing vengano estratte informazioni utilizzabili dai pacchetti di dati. Il protocollo in sé non fornisce autenticazione e sicurezza, ma si affida al sottostante protocollo, SSH, per fornire queste caratteristiche. Nella stragrande maggioranza dei diversi utilizzi, il protocollo SCP è sostituibile dal più esteso protocollo SFTP, che è anch'esso basato su SSH.
Il protocollo SCP implementa solo il trasferimento del file. Esso ci riesce connettendosi all'host usando SSH e là esegue un SCP del server (scp). Il programma SCP del server è tipicamente lo stesso programma SCP del client. SCP può interattivamente chiedere password o passphrase richieste per stabilire una connessione remota ad un host remoto, differentemente da rcp che fallisce in questa situazione.
Per effettuare un upload, il client fornisce al server i file da inviare, opzionalmente includendo i loro attributi di base (permessi, timestamp). Questo è un vantaggio rispetto al comune protocollo FTP, che non fornisce al file finale sul server gli attributi del file originario "data originaria/timestamp". Per i download, il client manda una richiesta per i file o directory da scaricare. Quando si scarica una directory, il server fornisce al client le sue sotto-directory e i file. Lo scaricamento è quindi server-driven, che implica un rischio di sicurezza quando ci si connette ad un "malicious server" (server che si sostituisce in modo fraudolento a quello desiderato).

## Programma SCP

Il programma SCP è un'applicazione client che implementa il protocollo SCP; è quindi un programma per eseguire copie sicure.
Il client SCP più ampiamente usato è il programma a riga di comando scp, che è fornito nella maggior parte delle implementazioni di SSH. Il programma scp è l'analogo "sicuro" del comando rcp. Il programma scp deve essere parte di tutti i server SSH che vogliono fornire il servizio SCP, tanto le funzioni scp quant'anche il server SCP.
Alcune implementazioni di SSH forniscono il programma scp2, che usa il protocollo SFTP invece di SCP, ma fornisce la stessa identica interfaccia a riga di comando di scp. scp è quindi tipicamente un link simbolico a scp2.
Tipicamente, la sintassi del programma scp è come la sintassi di cp:
Dal momento che il protocollo SCP implementa solo il trasferimento di file, i client grafici (GUI) SCP sono rari, dal momento che per implementarli sono richieste funzionalità aggiuntive(almeno il listing delle directory). Per esempio, WinSCP di default utilizza il protocollo SFTP. Perfino quando operano in modalità SCP, i client come WinSCP non sono dei puri client SCP, dal momento che essi devono usare altri mezzi per implementare le funzionalità aggiuntive (come il comando ls). Questo a sua volta porta a dei problemi di "dipendenza dalla piattaforma". Per questo può non essere possibile lavorare con un particolare server SCP usando un client SCP GUI, perfino se è possibile lavorare con lo stesso server usando un tradizionale client a riga di comando.
Tool più completi per controllare file con SSH sono i client SFTP.

## Implementazioni
### Lato server

* OpenSSH

### Lato client
#### Multipiattaforma

* PuTTY PSCP

#### Microsoft Windows

* WinSCP

#### Unix

* OpenSSH
* SecPanel
* Midnight Commander

#### macOS

* Fugu