- commande scp – Copie sécurisée
- Comment installer scp
- Utiliser scp – syntaxe de base
- Exemples de la commande scp
- 1. Sortie verbeuse
- 2. transférer plusieurs fichiers
- 3. Copier un répertoire entier (récursivement)
- 4. Copier des fichiers à travers 2 hôtes distants
- 5. Accélérer le transfert avec la compression
- 6. Limitez l’utilisation de la bande passante
- 7. Se connecter à un numéro de port différent sur l’hôte distant
- 8. Préserver les attributs du fichier
- 9. Mode silencieux
- 10. Spécifier le fichier d’identité
- 11. Utiliser un fichier ssh_config différent
- 12. Utiliser un chiffrement différent
- Résumé
commande scp – Copie sécurisée
Scp (Secure Copy) est un outil en ligne de commande pour copier ou transférer des fichiers entre hôtes. Il utilise le même type de mécanisme de sécurité que le programme ssh.
En fait, il utilise une connexion ssh en arrière-plan pour effectuer le transfert de fichiers. scp fait référence à la fois au « protocole » qui définit comment la copie sécurisée doit fonctionner et au « programme » (commande) qui est installé comme une partie de la suite d’outils OpenSSH.
Dans ce tutoriel rapide, nous allons examiner quelques exemples la commande scp et comment elle peut être utilisée pour transférer des fichiers de manière sécurisée.
Comment installer scp
Scp est généralement installé par défaut sur la plupart des distros linux comme une partie des paquets openssh. Sur ubuntu/debian par exemple, le paquet openssh-client fournit le programme scp.
$ dpkg -L openssh-client | grep scp/usr/bin/scp/usr/share/man/man1/scp.1.gz
C’est le paquet OpenSSH qui fournit les programmes ssh, scp, sftp ainsi que de nombreux autres outils. Nous n’avons donc rien à faire de plus ici, sauf utiliser et apprendre le programme.
Utiliser scp – syntaxe de base
La syntaxe de base de scp est très simple à mémoriser. Elle ressemble à ceci
$ scp source_file_path destination_file_path
Selon l’hôte, le chemin du fichier doit inclure l’adresse complète de l’hôte, le numéro de port, le nom d’utilisateur et le mot de passe ainsi que le chemin du répertoire.
Si vous « envoyez » un fichier de votre machine locale à une machine distante (téléchargement), la syntaxe ressemblerait à ceci
$ scp ~/my_local_file.txt _host.com:/some/remote/directory
Lorsque vous copiez un fichier d’un hôte distant à un hôte local (téléchargement), son apparence est juste l’inverse
$ scp _host.com:/some/remote/directory ~/my_local_file.txt# just download the file$ scp :/some/path/file.txt .
C’est à peu près tout ce qui concerne l’utilisation de scp pour les tâches régulières. En dehors de cela, il y a un couple d’options et de fonctions supplémentaires que scp supporte. Prenons un rapide aperçu de ceux-ci.
Et oui, par défaut, scp écrasera toujours les fichiers sur la destination. Si vous devez éviter cela, utilisez un outil plus puissant appelé rsync.
Exemples de la commande scp
1. Sortie verbeuse
Avec la sortie verbeuse, le programme scp sortirait beaucoup d’informations sur ce qu’il fait en arrière-plan. Cela est souvent utile lorsque le programme échoue ou n’est pas en mesure de terminer la requête. La sortie verbeuse indiquerait alors le point exact où le programme a rencontré des problèmes.
$ scp -v ~/test.txt :/root/help2356.txtExecuting: program /usr/bin/ssh host 192.168.1.3, user root, command scp -v -t /root/help2356.txtOpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013debug1: Reading configuration data /home/enlightened/.ssh/configdebug1: Reading configuration data /etc/ssh/ssh_configdebug1: /etc/ssh/ssh_config line 19: Applying options for *debug1: Connecting to 192.168.1.3 port 22.debug1: Connection established...... OUTPUT TRUNCATED
La sortie serait grande et contiendrait des informations détaillées sur la façon dont la connexion est établie, quels fichiers de configuration et d’identité sont utilisés et ainsi de suite.
2. transférer plusieurs fichiers
Des fichiers multiples peuvent être spécifiés séparés par un espace comme ceci
$ scp foo.txt bar.txt :/path/directory/
Pour copier plusieurs fichiers de l’hôte distant vers le répertoire local actuel
$ scp :/path/directory/\{foo.txt,bar.txt\} .$ scp :~/\{abc.log,cde.txt\} .
3. Copier un répertoire entier (récursivement)
Pour copier un répertoire entier d’un hôte à un autre, utilisez le commutateur r et spécifiez le répertoire
$ scp -v -r ~/Downloads :/root/Downloads
4. Copier des fichiers à travers 2 hôtes distants
Scp peut copier des fichiers d’un hôte distant à un autre hôte distant également.
$ scp :/some/remote/dir/foobar.txt :/some/remote/dir/
5. Accélérer le transfert avec la compression
Une option super cool pour accélérer le transfert afin de gagner du temps et de la bande passante. Il suffit d’utiliser l’option C pour activer la compression. Les fichiers sont compressés à la volée et décompressés sur la destination.
$ scp -vrC ~/Downloads :/root/Downloads
Dans l’exemple ci-dessus, nous avons déplacé le répertoire entier avec la compression activée. Le gain de vitesse dépendrait de la quantité de fichiers pouvant être compressés.
6. Limitez l’utilisation de la bande passante
Si vous ne voulez pas que scp prenne toute la bande passante disponible, alors utilisez l’option l pour limiter la vitesse maximale en Kbit/s.
$ scp -vrC -l 400 ~/Downloads :/root/Downloads
7. Se connecter à un numéro de port différent sur l’hôte distant
Si le serveur distant a le démon ssh fonctionnant sur un port différent (par défaut, c’est 22), alors vous devez indiquer à scp d’utiliser ce numéro de port particulier en utilisant l’option ‘-P’.
$ scp -vC -P 2200 ~/test.txt :/some/path/test.txt
8. Préserver les attributs du fichier
L’option ‘-p’ (en minuscules), préserverait les heures de modification, les heures d’accès et les modes du fichier original.
$ scp -C -p ~/test.txt :/some/path/test.txt
9. Mode silencieux
En mode silencieux (option ‘-q’), la sortie scp serait supprimée, et désactiverait le compteur de progression ainsi que les messages d’avertissement et de diagnostic.
$ scp -vCq ~/test.txt :/some/path/test.txt
10. Spécifier le fichier d’identité
Lorsque vous utilisez une authentification basée sur la clé (sans mot de passe), vous auriez besoin de spécifier le fichier d’identité qui contient la clé privée. Cette option est directement passée à la commande ssh et fonctionne de la même manière.
$ scp -vCq -i private_key.pem ~/test.txt :/some/path/test.txt
11. Utiliser un fichier ssh_config différent
Utiliser l’option ‘-F’ pour spécifier un fichier ssh_config différent.
$ scp -vC -F /home/user/my_ssh_config ~/test.txt :/some/path/test.txt
12. Utiliser un chiffrement différent
Scp utilise par défaut le chiffrement/chiffrement AES. Parfois, vous pouvez vouloir utiliser un chiffrement différent. L’utilisation d’un chiffrement différent peut accélérer le processus de transfert. Par exemple, blowfish et arcfour sont connus pour être plus rapides que AES (mais moins sécurisés).
$ scp -c blowfish -C ~/local_file.txt :/remote/path/file.txt
Dans l’exemple ci-dessus, nous utilisons le chiffrement blowfish ainsi que la compression. Cela peut donner une augmentation significative de la vitesse en fonction de la bande passante disponible.
Résumé
Bien que scp soit très efficace pour transférer des fichiers de manière sécurisée, il manque de fonctionnalités nécessaires à un outil de synchronisation de fichiers. Tout ce qu’il peut faire est de copier coller tous les fichiers mentionnés d’un emplacement à un autre.
Un outil plus puissant est Rsync qui a non seulement toutes les fonctions de scp mais ajoute plus de fonctionnalités pour synchroniser intelligemment les fichiers sur 2 hôtes. Par exemple, il peut vérifier et télécharger uniquement les fichiers modifiés, ignorer les fichiers existants, etc.
.
Laisser un commentaire