Copiez des fichiers en toute sécurité sous Linux avec la commande Scp
Il y a des moments où vous souhaitez transférer des fichiers entre votre système local et un serveur distant. Plusieurs protocoles et méthodes sont disponibles qui vous permettent de gérer les transmissions de fichiers de manière sécurisée.
La commande scp sous Linux est l'un de ces outils qui aide un utilisateur à partager des fichiers à distance entre des hôtes locaux et distants. Dans cet article, nous discuterons en détail de la commande scp, de son utilisation et de certaines fonctionnalités supplémentaires de la commande.
Qu'est-ce que la commande Scp
Scp, acronyme de Secure Copy , est un utilitaire de ligne de commande dans les systèmes d'exploitation Linux qui permet à un utilisateur de copier des fichiers entre des hôtes distants et locaux. Étant donné que la commande transfère des fichiers sur un réseau vers un autre hôte, un accès SSH est requis. SSH (Secure Shell) est un protocole qui vous permet de gérer les services réseau en toute sécurité sur n'importe quel réseau.
La commande scp prend également en charge certaines fonctionnalités supplémentaires telles que la spécification des paramètres d'authentification, la modification du port, le transfert de répertoires, etc.
Pourquoi Scp est meilleur que les autres méthodes
Scp est généralement préféré aux autres méthodes de transfert de fichiers car, pendant le transfert, la connexion entre les deux hôtes est cryptée. Le protocole SSH est responsable du chiffrement des fichiers, des mots de passe et de tout autre détail sensible.
Les autres méthodes de transfert telles que Telnet ou FTP n'ont aucun cryptage. En outre, la paire de clés utilisateur / mot de passe est également enregistrée en texte brut, ce qui n'est pas du tout une bonne pratique. Un pirate peut facilement accéder à vos informations en reniflant votre réseau.
Comment transférer des fichiers en toute sécurité à l'aide de Scp
À l'aide de la commande scp, vous pouvez transférer des fichiers entre:
- Un hôte local et un hôte distant
- Un hôte distant et un système local
- Deux hôtes distants
Syntaxe de base
La syntaxe de base de la commande scp est:
scp [options] [source] [destination]
Transfert de l'hôte local vers un système distant
Si vous êtes un administrateur de serveur, le transfert de fichiers entre un hôte local et des hôtes distants peut vous être utile. Pour télécharger un fichier nommé document.txt sur un hôte distant:
scp /home/document.txt user@remote-host:/home/document.txt
Notez que la source est le chemin du fichier sur votre stockage local. Et la destination est le chemin du fichier sur l'hôte distant. Vous devez également spécifier le nom d'utilisateur et le nom de domaine du serveur distant. Dans la commande ci-dessus, l' utilisateur est le nom d'utilisateur et l'hôte distant est le nom de domaine.
Le chemin de destination est séparé des détails de l' hôte distant en utilisant les deux points (:). Gardez à l'esprit que l'utilisateur doit exister sur le serveur distant si vous souhaitez transférer les fichiers avec succès. En outre, l'utilisateur doit avoir un accès en écriture au répertoire dans lequel vous souhaitez enregistrer le fichier.
Après avoir émis la commande mentionnée ci-dessus, le système vous demandera le mot de passe de l'utilisateur distant. Tapez le mot de passe et appuyez sur Entrée .
user@remote-host's password:
Si le mot de passe est valide, le transfert de fichiers s'initialise. Si vous avez entré un mot de passe incorrect, une erreur se produit.
Avant d'essayer de copier le fichier à l'aide de la commande scp, assurez-vous que les détails de l'hôte distant et le mot de passe sont corrects en vous connectant au serveur à l'aide de SSH.
D'un hôte distant à un hôte local
Pour copier des fichiers d'un hôte distant vers un hôte local, échangez simplement le chemin source et le chemin de destination dans la commande scp.
scp user@remote-host:/home/document.txt /home/document.txt
Le système vous demandera à nouveau le mot de passe de l'utilisateur distant. Saisissez le mot de passe pour confirmer le processus de transfert.
Entre deux hôtes distants
Pour copier des fichiers entre deux serveurs distants, les chemins source et de destination doivent être des répertoires sur les hôtes distants.
scp user1@remote-host1:/home/document.txt user2@remote-host2:/home/folder/document.txt
Encore une fois, une invite apparaîtra vous demandant d'entrer le mot de passe pour chacun des deux utilisateurs.
Options de ligne de commande Scp
Outre le simple transfert des fichiers de la source à la destination, scp dispose d'options supplémentaires qui peuvent être invoquées à l'aide d'arguments spécifiques.
Changer le port
Par défaut, la commande scp fonctionne sur le port 22. Cependant, vous pouvez toujours écraser la configuration par défaut et changer le port. L'indicateur -P vous permet de faire de même.
Pour utiliser un autre numéro de port lors de la copie de fichiers d'un hôte local vers un hôte distant:
scp -P 35 /home/document.txt user@remote-host:/home/document.txt
La commande susmentionnée garantira que la commande scp utilise le port 35 pour transférer des fichiers.
Conserver les horodatages des fichiers
Vous savez peut-être que Linux définit des horodatages pour chaque fichier afin de stocker l'heure de modification, l'heure d'accès et l'heure de modification associées au fichier. Lorsque vous transférez le fichier vers un autre emplacement à l'aide de scp, les horodatages du fichier de destination sont remplacés par l'heure actuelle.
Si, pour une raison quelconque, vous souhaitez conserver ces horodatages, utilisez l'indicateur -p . Notez que les indicateurs -P et -p sont différents l'un de l'autre.
scp -p /home/document.txt user@remote-host:/home/remote/document.txt
Copier les répertoires
Si vous souhaitez copier des répertoires au lieu de fichiers, utilisez l'indicateur -r pour transférer les répertoires de manière récursive.
scp -r user@remote-host:/home/videos /home/videos
Mode supprimé
Lorsque vous entrez la commande scp pour transférer des fichiers, le terminal affiche la barre de progression et d'autres informations associées à l'écran. Cependant, vous pouvez choisir de ne pas afficher ces informations à l'aide de l'indicateur -q .
scp -q user@remote-host:/home/document.txt /home/document.txt
Utiliser un fichier de paires de clés pour l'authentification
Si vous souhaitez authentifier la connexion d'hôte distant à l'aide d'un fichier de paire de clés, spécifiez le chemin du fichier à l'aide de l'indicateur -i .
scp -i /home/keypair.pem /home/document.txt user@remote-host:/home/document.txt
Chaînage de plusieurs drapeaux ensemble
Comme toute autre commande Linux, vous pouvez enchaîner plusieurs arguments pour rendre la commande scp plus efficace.
Par exemple, pour changer de port et transférer des fichiers en mode supprimé:
scp -P 34 -q user@remote-host:/home/document.txt home/document.txt
Si vous souhaitez utiliser un fichier de paires de clés pour l'authentification et devez copier les répertoires vers le chemin de destination:
scp -i /home/secret/keypair.pem -r /home/folder user@remote-host:/home/folder
Transfert de fichiers entre systèmes Linux
Dans le monde d'Internet, le transfert de fichiers entre systèmes est devenu une tâche essentielle. Pour ceux qui administrent des serveurs Linux, il est parfois important de faire une sauvegarde du serveur avant d'émettre une commande spécifique. Dans de telles situations, la commande scp est pratique.
De même, la commande cp aide à copier les fichiers d'un emplacement à un autre dans un système local. Il existe de nombreuses commandes de base indispensables si vous ne faites que commencer avec Linux.