# Secure Copy Protocol : qu’est-ce que le SCP ?

Les outils et les techniques permettant de transférer des données entre deux ordinateurs sont multiples. Pour les débutants et les utilisateurs moins expérimentés, il peut néanmoins être difficile de trouver la solution adéquate pour transférer des données dans la **multitude de programmes client et de protocoles disponibles**. Lorsque l’on souhaite transmettre des **données sensibles** en particulier, un simple transfert du point A au point B ne saurait suffire. Pour un tel transfert, il est impératif d’utiliser des méthodes offrant une sécurité suffisante.

L’une de ces méthodes est de transférer les données via le Secure Copy Protocol (SCP) qui a été conçu spécialement pour assurer un **transfert sécurisé des informations numériques**. Dans cet article, vous découvrirez ce que recouvre exactement ce protocole SCP et comment il fonctionne dans le détail.

## Qu’est-ce que le protocole SCP ?

Le Secure Copy Protocol (SCP), souvent appelé simplement « Secure Copy », est un protocole pour les systèmes informatiques assurant un transfert sécurisé des données entre **un ordinateur local** (Local Host) et **un ordinateur distant** (Remote Host) ou encore entre deux ordinateurs distants. Il est basé sur la **commande rcp** (**r**emote **cop**y) qui fut publiée dès 1982 en tant qu’élément des commandes « Berkeley Remote » de l’Université de Californie (Berkeley). Ces commandes permettent de contrôler le transfert des données via une ligne de commande.

SCP prévoit aussi bien une **procédure d’authentification** entre les deux hôtes qu’un **chiffrement du transfert**. Ce protocole garantit donc non seulement la sécurité, mais aussi l’authenticité des données transférées. Pour ces deux mécanismes de protection, le protocole SCP a recours au [SSH (Secure Shell)](https://www.ionos.fr/digitalguide/serveur/outils/protocole-ssh/ "Protocole SSH") qui est également utilisé pour d’autres protocoles de transfert comme [FTP](https://www.ionos.fr/digitalguide/serveur/know-how/file-transfer-protocol/ "File Transfer Protocol") (ou SFTP). Le port TCP prévu pour le **transfert via SCP** est le **port standard SSH 22**.

Secure Copy est multiplateforme : il existe des implémentations et des programmes pour tous les systèmes **Windows**, **macOS** et **Linux** courants ainsi que pour **Android** et **iOS**.

## Comment fonctionne le transfert via le protocole SCP ?

Secure Copy présuppose une authentification des deux hôtes impliqués. Pour qu’un transfert via ce protocole puisse avoir lieu, il convient tout d’abord d’établir une connexion SSH entre le système local et le système cible distant. Pour ce faire, il est nécessaire d’utiliser les **données d’accès SSH** ou une **clé autorisée pour l’authentification par clé publique**.

Note Si vous souhaitez utiliser SCP pour le **transfert de fichiers entre deux PC distants**, vous aurez besoin d’une connexion SSH entre le système local exécutant le client SCP et le PC distant qui fonctionnera dans ce cas comme un hôte cible.

Une fois la connexion SSH entre les deux hôtes établie, le client SCP lance un processus Secure Copy. Deux modes différents sont alors disponibles :

- **Mode « source »** : une requête SCP en mode source lit les fichiers sur le système cible et les renvoie au client.
- **Mode « sink »** : lorsque le mode sink est utilisé dans des requêtes effectuées via le protocole SCP côté client, cela indique au système distant qu’il s’agit de données entrantes devant être inscrites sur le système.

Généralement, les **clients SCP** utilisent l’indicateur **-f** (de l’anglais *from* « de ») pour déclencher le mode source. Pour déclencher le mode sink afin d’envoyer des données à l’hôte cible, on utilise en revanche l’indicateur **-t** (de l’anglais *to* « vers »).

Note L’interaction entre Secure Copy et Secure Shell peut être perturbée par des messages de bienvenue potentiels faisant suite à la réussite de la connexion SSH. SCP n’est en effet pas préparé à recevoir des **messages texte** de ce type. Par conséquent, il les interprète comme des messages d’erreur et bloque le transfert.

## Où et comment le SCP est-il utilisé (à travers un exemple) ?

Secure Copy est compatible nativement avec tous les systèmes d’exploitation courants et offre un excellent niveau de sécurité grâce à l’ajout de SSH. Combinant une **authentification et un chiffrement**, SCP est au même niveau que le très apprécié SFTP qui utilise lui aussi les mécanismes de protection de Secure Shell. Comme SCP supplante par ailleurs cette variante sécurisée du FTP en termes de **vitesse de transfert**, ce protocole constitue une alternative de choix lorsqu’il s’agit de transférer des **fichiers de façon rapide et sécurisée sur un serveur Web ou lorsque des données sensibles doivent être partagées sur un réseau local (par exemple dans un réseau d’entreprise)**.

Note En 2019, le **National Institute of Standards and Technology** américain a publié un [rapport de sécurité officiel](https://nvd.nist.gov/vuln/detail/CVE-2019-6111 "National Vulnerability Database : CVE-2019-6111") mettant en évidence des **points faibles dans différentes applications SCP**. Il s’agit en particulier d’un risque potentiel d’[attaque de l’homme du milieu](https://www.ionos.fr/digitalguide/serveur/securite/attaque-de-lhomme-du-milieu-apercu-du-modele/ "Attaque de « l’homme du milieu » : aperçu du modèle") au cours du transfert SCP qui permettrait aux hackers d’écraser des fichiers dans le répertoire cible ou d’infiltrer des programmes malveillants. Putty PSCP, OpenSSH et [WinSCP](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/le-transfert-de-donnees-chiffrees-avec-winscp/ "Le transfert de données cryptées avec WinSCP") font notamment partie des clients concernés.

En dehors des clients mentionnés précédemment, que vous pouvez télécharger gratuitement depuis le Web, MacOS, Windows et Linux disposent également d’un **client Secure Copy intégré par défaut** et portant le nom de « **scp** ». Par conséquent, la solution la plus simple et la plus rapide pour effectuer un transfert de données via le protocole SCP est de passer par l’invite de commandes ou le terminal comme le montrent les deux exemples de saisie suivants :

```none
scp fichier source test@host:répertoire/fichier cible
```

Cette commande copie le **fichier source en question dans le répertoire indiqué sur l’hôte cible**, l’utilisateur devant être connecté via SSH à l’aide du nom « test ». Si un fichier doit être transféré depuis un système tiers **sur le participant SCP local**, la commande ressemblerait à ce qui suit :

```none
scp test@host:répertoire/fichier source fichier cible
```

## Aperçu des principales commandes SCP

La **syntaxe** des commandes pour le contrôle du client SCP natif dans Windows et les autres systèmes d’exploitation apparaît nettement dans les exemples ci-dessus. Cependant, les deux exemples de code présentent uniquement un processus de copie sans les options supplémentaires proposées par l’outil SCP. Si l’on souhaite intégrer ces **options** à une commande, **elles seront placées avant les données concernant les fichiers et les hôtes** afin d’obtenir une syntaxe ressemblant à ce qui suit :

```none
scp [option(s)] [fichier source] [utilisateur@host:répertoire/fichier cible]
scp [option(s)] [utilisateur@host:répertoire/fichier source] [fichier cible]
```

Les principales options permettant d’ajuster les requêtes Secure Copy avec scp sont résumées dans le tableau suivant :

<table>
  <thead>
    <tr>
      <th>Options scp</th>
      <th>Fonctions</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>-1</td>
      <td>Donne l’instruction d’utiliser la version 1 du protocole SCP</td>
    </tr>
    <tr>
      <td>-2</td>
      <td>Donne l’instruction d’utiliser la version 2 du protocole SCP</td>
    </tr>
    <tr>
      <td>-C</td>
      <td>Active la compression GZIP de la connexion chiffrée SSH</td>
    </tr>
    <tr>
      <td>-B</td>
      <td>Ouvre la session sans demande de mot de passe</td>
    </tr>
    <tr>
      <td>-l limit</td>
      <td>Définit une limite de bande passante pour le transfert de fichier (Ko/s)</td>
    </tr>
    <tr>
      <td>-o ssh\_option</td>
      <td>Permet la définition d’options SSH concrètes comme le chiffrement</td>
    </tr>
    <tr>
      <td>-P port</td>
      <td>Spécifie le port sur le système distant via lequel la connexion sera effectuée</td>
    </tr>
    <tr>
      <td>-p</td>
      <td>Conserve les métainformations du fichier original (telles que les durées de modification et d’accès)</td>
    </tr>
    <tr>
      <td>-q</td>
      <td>Masque la barre de progression pendant le transfert</td>
    </tr>
    <tr>
      <td>-r</td>
      <td>Copie l’ensemble du répertoire de façon récursive, c’est-à-dire en incluant tous les sous-répertoires</td>
    </tr>
    <tr>
      <td>-S program</td>
      <td>Spécifie le programme devant être utilisé pour la connexion chiffrée (le programme doit comprendre les options SSH)</td>
    </tr>
  </tbody>
</table>


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/know-how/scp-secure-copy/](https://www.ionos.fr/digitalguide/serveur/know-how/scp-secure-copy/) for AI/LLM consumption.