# SCP – Transfert de fichiers via SSH

Commande permettant d'envoyer et de récupérer des fichiers entre deux machines via SSH.

## Envoyer un fichier vers un serveur distant

```bash
scp fichier.txt utilisateur@192.168.1.100:/chemin/destination/
```

## Télécharger un fichier depuis un serveur distant

```bash
scp utilisateur@192.168.1.100:/chemin/fichier.txt .
```

## Envoyer un dossier complet

```bash
scp -r dossier/ utilisateur@192.168.1.100:/chemin/destination/
```

## Télécharger un dossier complet

```bash
scp -r utilisateur@192.168.1.100:/chemin/dossier/ .
```

## Utiliser un port SSH spécifique

```bash
scp -P 2222 fichier.txt utilisateur@serveur:/chemin/
```

**Attention :** SCP utilise `-P` (majuscule) pour définir le port SSH.

## Utiliser une clé SSH spécifique

```bash
scp -i ~/.ssh/id_ed25519 fichier.txt utilisateur@serveur:/chemin/
```

## Préserver les dates et permissions

```bash
scp -p fichier.txt utilisateur@serveur:/chemin/
```

## Activer la compression pendant le transfert

```bash
scp -C fichier.txt utilisateur@serveur:/chemin/
```

## Afficher les informations détaillées du transfert

```bash
scp -v fichier.txt utilisateur@serveur:/chemin/
```

## Combiner plusieurs options

```bash
scp -P 2222 -i ~/.ssh/id_ed25519 -r dossier/ utilisateur@serveur:/chemin/
```

## Options utiles

| Option | Description |
|---|---|
| `-r` | Transfert récursif (dossiers) |
| `-P` | Port SSH |
| `-i` | Clé privée SSH |
| `-p` | Préserve les dates et permissions |
| `-C` | Active la compression |
| `-v` | Mode verbeux (debug) |
| `-q` | Mode silencieux |
| `-l` | Limite la bande passante (en Kbit/s) |

## Exemples pratiques

**Envoyer un fichier vers un serveur :**
```bash
scp backup.tar.gz admin@192.168.1.50:/home/admin/
```

**Récupérer un fichier depuis un serveur :**
```bash
scp admin@192.168.1.50:/var/log/syslog .
```

**Envoyer un dossier en utilisant un port SSH personnalisé :**
```bash
scp -P 2222 -r ./config/ admin@192.168.1.50:/opt/
```

**Limiter le débit à 10 Mbit/s :**
```bash
scp -l 10000 fichier.iso admin@192.168.1.50:/data/
```

## À retenir

- `scp` : copie sécurisée via SSH.
- `-r` : indispensable pour transférer un dossier.
- `-P` : définit le port SSH (majuscule).
- `-i` : permet de choisir une clé SSH.
- `-p` : conserve les dates et permissions.
- `-C` : active la compression.

**Astuce :** Pour des transferts réguliers, des sauvegardes ou des synchronisations de gros volumes, préférer `rsync`.