SCP : Secure CoPy
SCP est le nom d'une commande fournis par le paquet “openssh-client”. La commande permet de façon très simple d'échanger des fichiers et des dossiers entre un client SSH et un serveur SSH.
L'utilisation de la commande SCP permet de rapidement prendre et envoyer des fichiers en ligne de commande entre machines Linux.
Nous allons ici utiliser la même structure de commande que la commande “cp” sous Linux qui permet de copier un fichier. SCP prend en effet le modèle de “cp” pour son utilisation basique.
Prenons le schéma suivant, il est souvent plus facile de visualiser les flux réseau ainsi :
On dispose donc de deux machines sous Linux, avec chacune leur arborescence.
Envoi d'un fichier via SSH en utilisant SCP
Si je suis sur la Machine mickael et que je souhaite envoyer le fichier /home/mickael/data/Fichier2 dans le répertoire /var/www du serveur Linux, je vais utiliser la commande suivante :
scp /home/mickael/data/Ficher2 root@192.168.10.131:/var/www/
Quelques explications, vous allez voir, ce n'est pas si complexe que cela
Ici, on retrouve la structure de la commande “cp” dans laquelle on spécifie la source, puis la destination. Entre les deux, on peut voir “root@192.168.10.131 :”.
En effet, étant donné que l'on souhaite envoyer le fichier en question sur une autre machine, il faut bien spécifier son IP, de plus, si l'on passe par SSH, il faut s'authentifier. On va donc se logguer en root sur notre machine distante pour y déposer notre fichier. Le “:” permet de spécifier le chemin dans la machine distante. S'il n'est pas spécifié, les fichiers atteriront dans le dossier par défaut de l'utilisateur : la home. (/root pour l'utilisateur root, /home/user pour l'utilisateur “user”, etc.).
Note : Il faut bien sûr être certain que le chemin de destination existe sur la machine de destination. Dans le cas contraire, nous obtiendrons une erreur de la part de SSH.
Avantages :
Inconvénients :
Exemple de cas d’utilisations :
Envoi de fichiers et répertoires
De serveur à serveur depuis votre machine locale
Copie récursive d’un dossier d’un serveur (serveur1) vers un autre serveur (serveur2) depuis votre machine locale.
Cela nécessite d’avoir accès aux deux serveurs, depuis votre machine locale, vous lancez une commande qui copiera les fichiers d’un serveur à un autre.
scp -r -p user@serveur1:chemin/vers/dossier/source user@serveur2:chemin/vers/dossier/destination
Copier dans le presse-papier
De serveur à serveur en étant connecté à un serveur
La commande est sensiblement la même, vous êtes connecté sur la machine où sont disponibles les fichiers.
scp -r -p chemin/vers/dossier/source user@serveur2:chemin/vers/dossier/destination
Copier dans le presse-papier
1. Définition
La commande scp permet de copier un fichier ou un répertoire (-r) du client vers le serveur ou du serveur vers le client. Le chemin du serveur peut être indiqué en absolu (/home/dupont/Repertoire par exemple) ou relatif à partir du répertoire de base Repertoire. Pour utiliser scp, vous devez connaître l’arborescence exacte des répertoires de la machine distante. Il est impératif que SSH soit installé sur les deux machines devant communiquer pour effectuer votre transfert. Attention: il sera nécessaire de donner votre mot de passe car au Centre de Calcul, il n’est pas possible de faire une authentification par échange de clés SSH (voir se connecter au Centre de Calcul avec SSH).
2. Usage
scp [-pqrvBC1246] [-F ssh_config] [-S program] [-P port] [-c cipher][-i identity_file] [-l limit] [-o ssh_option] [[user@]host1:]file1[...] [[user@]host2:]file2
3. Syntaxe
scp Login1@Serveur1:Chemin1/NomFichier1 Login2@Serveur2:Chemin2/NomFichier2
scp Fichier login@serveur:Chemin
scp -r Repertoire login@serveur:Chemin
scp login@serveur:Chemin/Fichier .
scp -r login@serveur:Chemin/Repertoire .
4. Exemple :
scp calvat@ccali.in2p3.fr:/afs/in2p3.fr/home/c/calvat/Readme.txt .
scp -r calvat@ccali.in2p3.fr:/afs/in2p3.fr/home/c/calvat/toto .