GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande SCP pour le transfert de fichiers

SCP (Secure Copy Protocol) est un protocole de transfert de fichiers réseau qui permet des transferts de fichiers simples et sécurisés entre un système distant et un hôte local ou deux emplacements distants. Il utilise le mécanisme Secure Shell (SSH) pour fournir des fonctionnalités d'authentification et de cryptage pour vos données et informations d'identification.

Les administrateurs utilisent la commande SCP Linux pour rationaliser le processus de transfert de données entre les serveurs Linux car il ne nécessite aucune connexion à un serveur. De plus, il offre une meilleure sécurité que le protocole de transfert de fichiers (FTP) et est conforme aux normes du Conseil de sécurité PCI.

Dans cet article, vous apprendrez à utiliser les commandes SCP sur un hôte distant, tel qu'un VPS. Nous décomposerons la commande SCP de base et fournirons des exemples pour vous aider à mieux comprendre le fonctionnement des commandes Linux.

Comprendre la syntaxe de la commande SCP SSH

La syntaxe de base de la commande SCP pour effectuer un transfert de fichiers entre deux systèmes distants se présente comme suit :

scp [other options] [source username@IP]:/[directory and file name] [destination username@IP]:/[destination directory]

Voici une ventilation de la commande :

  • [autres options] ‒ les modificateurs que vous pouvez ajouter à la commande SCP. Nous couvrirons les plus populaires plus tard.
  • [nom d'utilisateur source@IP] ‒ nom d'utilisateur et IP de la machine qui héberge le fichier cible.
  •  :/ ‒ informe la commande SCP que l'utilisateur tapera dans le répertoire source.
  • [répertoire et nom de fichier] ‒ l'emplacement et le nom du fichier.
  • [nom d'utilisateur de destination@IP] ‒ nom d'utilisateur et IP du système de destination.
  • [répertoire de destination] ‒ le répertoire de destination où le fichier sera enregistré.

L'exemple suivant montre la commande SCP dans un scénario réel :

scp -p [email protected]:/media/scp.png [email protected]:/desktop/destination

Si vous copiez vers ou depuis un hôte local, vous n'aurez pas besoin de l'adresse IP et du chemin de destination ou source comme /desktop/folder_name .

Copier des fichiers à l'aide de la commande SCP

La meilleure chose à propos de SCP est qu'il vous permet de transférer en toute sécurité des fichiers entre deux hôtes distants ou une machine distante et un système local. Les sections suivantes couvriront le fonctionnement des commandes SCP pour chaque type de transfert.

Important ! Quel que soit le type de transfert que vous effectuez avec SCP, vous ne devez pas être connecté au serveur distant via SSH.

Copier d'un serveur local vers un hôte distant

Nous allons copier un fichier local scp.zip à un serveur distant appelé root . L'adresse IP du serveur vient après le nom d'utilisateur.

scp /users/Hostinger/desktop/scp.zip [email protected]:/writing/article

Si vous n'avez pas configuré la confirmation automatique du client SSH, vous serez invité à entrer le mot de passe utilisateur de la machine distante et à voir un indicateur de progression. Il ressemblera à ceci :

Mot de passe de
[email protected]’s password:
novel3.zip 100% 0 0.0KB/s 00:00

Disons que le serveur distant est configuré pour écouter les connexions SSH sur un port autre que le port SSH par défaut 22. Dans ce cas, vous devrez spécifier ce port en utilisant le -P option.

scp -P 2322 /users/Hostinger/desktop/scp.zip [email protected]:/writing/article

Si vous souhaitez également modifier le nom du fichier lors de l'opération de transfert, votre commande ressemblera à ceci (si vous n'utilisez pas le port par défaut, ajoutez –P suivi du numéro de port approprié) :

scp /users/Hostinger/desktop/scp.zip [email protected]:/writing/article/howtoscp.zip

Utilisez le –r option suivie de la même ligne de commande pour copier un répertoire avec plusieurs fichiers ou sous-répertoires.

scp -r /users/Hostinger/desktop [email protected]:/writing/article

Transfert d'un fichier distant vers une machine locale

L'inversion des systèmes source et cible de la commande doit être reflétée dans la syntaxe. Cette fois, nous allons copier le scp.zip fichier du même hôte distant vers notre ordinateur local.

scp [email protected]:/writing/articles/SCP.zip Users/Hostinger/Desktop

L'exécution de cette commande affichera la même sortie de connexion SSH nécessitant un mot de passe. Il n'apparaîtra pas uniquement si les privilèges sudo ont désactivé l'authentification ou forcé le client SSH à utiliser une clé privée sur votre machine.

Déplacement en toute sécurité d'un fichier entre des hôtes distants

Pour copier des fichiers d'un serveur distant à un autre, vous devrez entrer les mots de passe des deux comptes après avoir exécuté la commande suivante dans votre terminal :

scp [email protected]:/writing/article/scp.zip [email protected]:/publishing

La commande ci-dessus copie le fichier source /writing/article/scp.zip du premier hôte au second. Pour copier des dossiers, utilisez le -r option et spécifiez le chemin du dossier au lieu du fichier qu'il contient.

Dans des circonstances normales, le fichier ira directement du premier serveur distant au second. Cependant, si vous souhaitez rediriger l'opération via votre machine, ajoutez le -3 option comme indiqué dans la commande suivante :

scp -3 [email protected]:/writing/article/scp.zip [email protected]:/publishing

Utilisation de la commande SCP avec options

Les exemples ci-dessus présentent plusieurs options SCP qui modifient la commande. Il existe de nombreuses options courantes sous forme de caractère unique (-o) et leur équivalent descriptif (–option).

Le -q Le paramètre, par exemple, invite le système à exécuter l'opération en mode silencieux. Il désactive la sortie du compteur de progression ainsi que les messages d'avertissement et de diagnostic. Utilisez le -v paramètre pour activer la sortie détaillée pour un débogage plus facile :

scp -v /users/Hostinger/desktop/scp.zip [email protected]

Le -4 et -6 les options déterminent la version de protocole utilisée, qui est IPv4 ou IPv6. Vous pouvez également configurer les exigences d'adresse IP de manière plus complète avec le mot-clé address-family.

scp -6 [email protected]:/users/Hostinger/desktop/scp.zip

Le -p l'option préserve la modification, les temps d'accès et les modes du fichier source.

scp -p /users/Hostinger/desktop/scp.zip [email protected]

Utilisez le -stat option pour vérifier les détails des fichiers copiés, tels que la date de création et la taille du fichier.

Le -C L'option active la compression des données pour les fichiers ou répertoires volumineux pendant l'opération de transfert. Gardez à l'esprit que cette option ne fonctionnera pas sur les fichiers compressés, tels que .zip et .rar archives.

scp -C Folder [email protected]

À ne pas confondre avec -C , le -c L'option vous permet de spécifier l'algorithme de chiffrement que le client doit utiliser. Certaines des valeurs que vous pouvez entrer sont 'aes256-ctr ', 'aes256-cbc ', et '3des-cbc ‘. L'option par défaut dans la configuration du shell est 'AnyStdCipher '.

scp -c 3des-cbc /users/Hostinger/desktop/scp.zip [email protected]

Important ! Soyez prudent lorsque vous utilisez les options SCP car elles sont sensibles à la casse.

Conclusion

Le protocole de copie sécurisée facilite le transfert de fichiers entre plusieurs systèmes distants sur un réseau. Il vous permet de copier en toute sécurité des fichiers d'un hôte distant à un autre sans avoir à vous connecter via une connexion cryptée.

De plus, cette méthode de transfert de fichiers à distance crypte vos données avec un shell sécurisé, garantissant la confidentialité des informations transmises.

Nous espérons que cet article vous a aidé à comprendre le fonctionnement de la commande SCP et comment l'utiliser correctement sur les serveurs Linux.

Comment utiliser la commande SCP pour le transfert de fichiers – FAQ

Comment exécuter SCP sous Windows ?

Vous pouvez exécuter SCP sous Windows via PuTTY. Cet émulateur de terminal fournit PSCP (PuTTY Secure Copy client) pour le transfert de fichiers à l'aide d'une connexion SSH.
Après avoir téléchargé et installé PuTTY, vous pourrez utiliser la commande SCP via l'interface de ligne de commande Windows.
La syntaxe SCP fonctionne de manière similaire sur les machines Windows. La seule différence est que vous devez démarrer chaque ligne de commande avec pscp -scp .
Voici la syntaxe de base de la commande SCP sous Windows :
pscp -scp [other options] [source username@IP]:/[directory and file name] [destination username@IP]:/[destination directory]

Puis-je passer un mot de passe dans la commande SCP ?

L'une des meilleures fonctionnalités de la commande SCP est son cryptage de mot de passe, qui protège les fichiers et les répertoires pendant le processus de transfert. Cependant, la saisie du mot de passe utilisateur pour démarrer chaque transfert de fichiers peut prendre du temps, en particulier si vous devez déplacer plusieurs fichiers.
La mise en œuvre de SSHPASS sur la ligne de commande SCP vous permettra d'automatiser le processus d'authentification, en contournant l'invite de mot de passe .
Cet utilitaire fournit une authentification par mot de passe interactif au clavier, vous permettant d'utiliser une commande sur une seule ligne pour transférer des fichiers de la source vers un système cible comme suit :
sshpass -p [password] scp -r /users/Hostinger/desktop [email protected]:/writing/article
Vous pouvez activer SSHPASS en générant des paires de clés SSH. Si vous utilisez une machine Windows, PSCP vous laissera passer le mot de passe en utilisant le -pw option :
sshpass -pw [password] [email protected]:/writing/article

Comment puis-je arrêter ou mettre en pause SCP ?

Vous pouvez interrompre le processus avec le signal "arrêt terminal" (SIGTSTP) en appuyant sur Ctrl+Z . Pour reprendre le processus, envoyez le signal SIGCONT en tapant fg .
Si SIGCONT ne fonctionne pas, l'autre option consiste à utiliser le rsync utilitaire. Il compare les fichiers ou répertoires sources avec ceux partiellement téléchargés pour éviter la duplication, en reprenant indirectement votre téléchargement.
Voici la syntaxe de base de rsync :
rsync [option] user@host:[file/directory origin] [destination]
L'exemple suivant montre comment utiliser rysync pour copier récursivement un .zip fichier et conserver sa propriété :
rsync -a /users/Hostinger/desktop/scp.zip [email protected]


Linux
  1. Comment utiliser la commande SFTP pour le transfert de fichiers sécurisé

  2. Commande SCP sous Linux :comment l'utiliser, avec des exemples

  3. Commande SCP Linux - Comment transférer un fichier SSH de distant à local

  4. Utiliser Scp pour transférer un fichier du répertoire local X vers le répertoire distant Y ?

  5. Comment transférer des fichiers en toute sécurité à l'aide de la commande SCP sous Linux

Comment utiliser la commande Truncate sous Linux

Comment utiliser une commande de fichier sous Linux

Comment utiliser Bluetooth sur Ubuntu pour le transfert de fichiers

Comment utiliser la commande SCP sous Linux

Comment utiliser la commande lsof sous Linux

Comment utiliser la commande shred Linux