Fiche scp sous linux

scp (Secure Copy Protocol) permet de transférer des fichiers de manière sécurisée via SSH.

Il est utilisé pour :

- copier des fichiers vers un serveur
- récupérer des fichiers depuis un serveur
- transférer des dossiers complets
- automatiser des transferts sécurisés

Principe

scp source destination

Le transfert se fait via SSH (port 22 par défaut).


Syntaxe générale

scp [options] source utilisateur@ip:/chemin
scp [options] utilisateur@ip:/chemin destination

Connexion avec clé SSH (recommandé)

Génération de la clé

Sur le poste client :

ssh-keygen -t rsa -b 4096

Fichiers générés :

~/.ssh/id_rsa        (clé privée)
~/.ssh/id_rsa.pub (clé publique)

Copie de la clé sur le serveur

ssh-copy-id user@192.168.1.10

Ou manuellement :

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Sur le serveur :

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Test de connexion

ssh user@192.168.1.10

Si la connexion fonctionne sans mot de passe, la clé est correctement configurée.


Utilisation de scp avec clé

scp -i ~/.ssh/id_rsa fichier.txt user@192.168.1.10:/home/user/

Désactivation du mot de passe (optionnel)

Sur le serveur :

nano /etc/ssh/sshd_config

Modifier :

PasswordAuthentication no

Puis :

systemctl restart ssh

Transfert de fichiers

Upload

scp fichier.txt user@192.168.1.10:/home/user/

Download

scp user@192.168.1.10:/home/user/fichier.txt .

Copie d’un dossier

scp -r dossier user@192.168.1.10:/home/user/

Options utiles

Port personnalisé

scp -P 2222 fichier.txt user@192.168.1.10:/home/user/

Compression

scp -C fichier.txt user@192.168.1.10:/home/user/

Mode verbeux

scp -v fichier.txt user@192.168.1.10:/home/user/

Limiter le débit

scp -l 1000 fichier.txt user@192.168.1.10:/home/user/

Exemple complet

scp -r -C -i ~/.ssh/id_rsa dossier user@192.168.1.10:/home/user/

Copier entre deux serveurs

scp user1@192.168.1.10:/fichier.txt user2@192.168.1.20:/home/user/

Permissions

Vérifier :

ls -l

Modifier :

chmod 644 fichier.txt
chown user:user fichier.txt

Script automatisé

#!/bin/bash

scp -i ~/.ssh/id_rsa /backup/data.tar.gz user@192.168.1.10:/backup/

Problèmes fréquents

ProblèmeCauseSolution
Permission denied (publickey)clé absentevérifier authorized_keys
Mauvais droits SSHpermissions incorrecteschmod 600 / 700
Connexion refuséeSSH arrêtésystemctl status ssh
Timeoutfirewallouvrir port 22

Bonnes pratiques

- utiliser des clés SSH
- protéger la clé privée
- désactiver l’authentification par mot de passe
- utiliser des chemins absolus
- automatiser avec scripts

Fichiers importants

~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/authorized_keys
/etc/ssh/sshd_config
/var/log/auth.log

À retenir

scp + clé SSH = transfert sécurisé sans mot de passe
solution simple, rapide et adaptée aux scripts

Retour en haut