12 scp command examples securely transfer files linux
Ce didacticiel explique le protocole de copie sécurisée ou la commande SCP utilisée pour copier en toute sécurité les fichiers sous Linux et Unix avec la syntaxe et des exemples:
Dans cet article, nous discuterons de la commande SCP (Secure Copy Protocol) qui est utilisée pour le transfert de fichiers. Nous verrons ce que c'est et comment cela fonctionne à l'aide de quelques exemples. Alors, essayons d'abord de comprendre ce qu'est la commande SCP.
Ce que vous apprendrez:
Qu'est-ce que la commande SCP?
SCP (Secure Copy Protocol) est un protocole réseau utilisé pour transférer en toute sécurité les fichiers entre les hôtes sur un réseau informatique. En utilisant cet utilitaire de ligne de commande dans les systèmes de type Linux et Unix, vous pouvez effectuer le transfert de fichiers d'un hôte local vers un hôte distant, ou d'un hôte distant vers un système local, ou entre deux hôtes distants.

(image la source )
SCP garantit l'authenticité, le cryptage et la confidentialité des données en utilisant le mécanisme SSH (Secure Shell) pour le transfert des fichiers. Ainsi, les données en transit sont protégées contre les attaques d'espionnage. Les clients peuvent charger et télécharger des fichiers et des répertoires vers et depuis un serveur à l'aide de ce protocole. Il nécessite un mot de passe ou des clés pour l'authentification. Le port par défaut pour SCP est le port TCP 22.
L'avantage du protocole SCP est que vous n'avez pas besoin de démarrer une session FTP ou de vous connecter explicitement aux hôtes distants pour le transfert de fichiers.
Syntaxe du protocole SCP
# 1) Pour copier le fichier du local vers l'hôte distant
scp (options) SourceFileName UserName@TargetHost:TargetPathIl s'agit de la syntaxe très basique de la commande SCP qui copiera le fichier source de l'hôte actuel vers le chemin cible de l'hôte cible à l'aide d'un compte utilisateur. En général, elle est assez similaire à la commande copy cp.
# 2) Pour la copie d'un hôte distant vers local
Pour copier un fichier:
scp (options) UserName@SourceHost:SourceFilePath TargetFileNameOu, téléchargez simplement le fichier:
scp (options) UserName@SourceHost:SourceFilePathPour copier le dossier (récursivement):
scp -r UserName@SourceHost:SourceDirectoryPath TargetFolderNameSi l'hôte distant utilise un port autre que le port par défaut 22, le numéro de port doit être explicitement mentionné dans la commande à l'aide de l'option -P.
# 3) Copie d'un ordinateur distant vers un autre ordinateur distant
scp (options) UserName@SourceHost:SourcePath UserName@TargetHost:TargetPathLorsque vous copiez des fichiers d'un ordinateur distant vers un autre, le trafic ne passe pas par votre ordinateur. Cette opération a lieu directement entre les deux serveurs distants.
# 4) Copie de plusieurs fichiers
Pour copier plusieurs fichiers de localhost vers un hôte distant:
scp file1 file2 UserName@TargetHost:TargetDirectoryPathPour copier plusieurs fichiers d'un hôte distant vers un répertoire courant de localhost:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}Options utilisées avec la commande SCP
Les options les plus couramment utilisées avec la commande SCP sont répertoriées ci-dessous:
- -C : C, ici signifie activer la compression. En utilisant cette option, la compression sera activée et la vitesse de transfert augmentera pendant la copie. Il activera automatiquement la compression à la source et la décompression à la cible.
- -c: c signifie chiffre. Par défaut, SCP utilise «AES-128» pour le cryptage des fichiers. Si vous souhaitez modifier le chiffrement, vous devez utiliser l'option -c suivie du nom du chiffrement.
- -je : i signifie fichier d'identification ou clé privée. En général, l'authentification par clé est choisie dans les environnements Linux. Ainsi, nous pouvons spécifiquement mentionner le fichier de clé privée ou le fichier d'identité en utilisant l'option -i.
- -l : l signifie limite de bande passante. Grâce à cette option, vous pouvez définir la bande passante maximale à utiliser. Il est en Kbits / s.
- -B: Cette option est utilisée pour utiliser le mode batch lors de la copie.
- -F : Cette option est utilisée pour utiliser un fichier ssh_config différent lors de la copie dans des situations où vous devez utiliser différents réseaux pour vous connecter aux systèmes Linux. Dans de tels scénarios, vous devez attribuer un fichier de configuration SSH de remplacement par utilisateur.
- -P: Si le numéro de port ssh de l'hôte de destination est différent du numéro de port par défaut 22, vous devez mentionner spécifiquement le numéro de port en utilisant l'option -P.
- -p: Cette option est utilisée pour préserver les autorisations de fichiers, les modifications et les temps d'accès lors de la copie.
- -q: Cette option exécutera la commande SCP en mode silencieux. Il désactivera la jauge de progression et n'affichera pas la progression du transfert, les messages d'avertissement ou de diagnostic de ssh sur l'écran du terminal Linux.
- -r: L'option -r est utilisée pour copier les fichiers et répertoires de manière récursive. Par exemple, si vous souhaitez copier le dossier entier (avec le contenu à l'intérieur du dossier) sur une machine cible, vous devez utiliser l'option -r.
- -S: Cette option est utilisée pour spécifier le programme à utiliser pour la connexion.
- -v: v signifie verbeux. Cette option affichera la progression étape par étape de l'exécution de la commande SCP sur l'écran du terminal. C'est vraiment utile pour le débogage.
Exemples de commandes SCP
Comprenons comment utiliser la commande SCP à l'aide d'exemples:
Exemple 1: pour la copie de l'hôte local vers l'hôte distant
scp -v lockfile.txt kaushapx@10.172.80.167: /home/cpf657/kaushapx/test1Dans l'exemple ci-dessus,
questions et réponses d'entrevue SQL de base pour les novices
- L'option -v est utilisée comme une option détaillée pour voir les détails de la sortie de cette commande sur le terminal Linux. Grâce à la sortie détaillée, vous pouvez savoir exactement ce qui se passe en arrière-plan lorsque la commande est exécutée. Cela aide au débogage.
- Lockfile.txt est le nom du fichier source que nous voulons transférer vers un hôte distant.
- Kaushapx est un exemple de nom d'utilisateur. En utilisant ce compte de nom d'utilisateur, nous copierons en toute sécurité le fichier sur l'hôte distant.
- 10.172.80.167 est l'exemple de l'adresse IP de l'hôte distant cible sur lequel nous voulons transférer le fichier.
- / home / cpf657 / kaushapx / test1 est un exemple de chemin absolu où nous voulons placer ce fichier transféré.
Les captures d'écran ci-dessous montrent l'exécution de la commande SCP ci-dessus.


Exemple 2: pour la copie de l'hôte distant vers le système local:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt /home/tpf655/kaushapx 
Exemple 3: pour copier plusieurs fichiers sur un hôte distant:
scp DemoFile.txt log.xml kaushapx@10.172.80.167:/home/cpf657/kaushapx/test 
Exemple 4: pour copier des fichiers sur deux systèmes distants:
scp kaushapx@10.172.80.167:/home/cpf657/kaushapx/console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test 
Exemple 5: pour copier des fichiers et des répertoires de manière récursive (en utilisant l'option -r):
Supposons que j'ai un dossier appelé «test» dans l'hôte local et que ce dossier contient quatre fichiers. Je veux copier le dossier entier dans un autre dossier appelé «test1» présent sur un hôte distant.
J'utiliserai la commande suivante:
scp -r test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1 
Exemple 6: pour augmenter la vitesse de copie en activant la compression (en utilisant l'option -C):
Transférons le même dossier que dans l'exemple 5, mais cette fois en activant la compression:
scp -r -C test kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1 
Exemple 7: pour limiter la bande passante lors de la copie (en utilisant l'option -l):
Continuons avec la même option. Cette fois, nous utiliserons l'option -l et spécifierons la bande passante, disons 500. Rappelez-vous, la bande passante que nous avons mise ici est en Kbit / s.

Exemple 8: pour spécifier un port ssh différent lors de la copie (en utilisant l'option -P):
Si le serveur distant sur lequel vous copiez le fichier utilise un port autre que le port par défaut 22, vous devez indiquer explicitement le numéro de port dans la commande SCP en utilisant l'option -P. Par exemple, si le port ssh du serveur distant est 2022, vous mentionnerez -P 2022 dans la commande SCP.
scp -P 2022 console.txt kaushapx@10.182.46.76:/home/tpf655/kaushapx/test 
Exemple 9: pour préserver les autorisations, les modifications et les temps d'accès des fichiers lors de la copie (en utilisant l'option -p):
scp -p console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1 
Exemple 10: pour copier des fichiers en mode silencieux (en utilisant l'option -q):
scp -q console.txt kaushapx@10.172.80.167:/home/cpf657/kaushapx/test1 
Exemple 11: pour identifier les fichiers dans SCP lors de la copie (en utilisant l'option -i):
Dans l'exemple ci-dessus, my_private_key.pem est le fichier d'identité ou le fichier de clé privée.

comment initialiser une liste en java
Exemple 12: pour utiliser un chiffrement différent lors de la copie via SCP (en utilisant l'option -c):
scp -c 3des-cbc -r test1 kaushapx@10.182.46.76:/home/tpf655/kaushapx/testFAQ sur la commande SCP
Dans cette section, nous aborderons quelques questions fréquemment posées sur la commande SCP.
Q # 1) Qu'est-ce que la commande SCP?
Répondre: SCP signifie Secure Copy Protocol. À l'aide de la commande SCP, vous pouvez effectuer la copie de fichiers en toute sécurité entre les hôtes d'un réseau. Il utilise les mécanismes de SSH pour le transfert de données. Il utilise l'authentification par clé ou par mot de passe.
Q # 2) Que fait SCP sous Linux?
Répondre: Sous Linux, la commande SCP transfère les fichiers entre les serveurs de manière sécurisée. Il peut s'agir d'une copie de fichier entre un serveur distant et un hôte local ou entre deux serveurs distants. SCP est une commande préinstallée sous Linux et est connue pour sa simplicité et sa sécurité.
Q # 3) Comment utilisons-nous les fichiers SCP sous Linux?
Réponse: Vous pouvez utiliser la syntaxe de commande suivante pour les fichiers SCP:
scp (options) (username@)(source_host:)file1 (username@)(destination_host:)file2.De nombreuses options peuvent être utilisées avec la commande SCP. Par exemple, -C pour la compression, -c pour le chiffrement, -P pour le port, -I pour la clé privée, -l pour la limite, -r pour la copie récursive, etc.
Q # 4) Comment pouvons-nous SCP un fichier?
Répondre: Vous pouvez SCP un fichier en utilisant la commande SCP comme mentionné dans Q # 3.
Q # 5) Est-ce que SCP copie ou se déplace?
Répondre: La commande SCP copie le (s) fichier (s) de la source vers la destination. Ainsi, après SCP, le fichier sera présent sur les deux hôtes.
Q # 6) Pouvez-vous utiliser SCP pour un répertoire?
Répondre: Oui, nous pouvons utiliser SCP pour un répertoire. Vous devez utiliser l'option -r pour copier le répertoire entier avec son contenu.
Vous trouverez ci-dessous la syntaxe de la commande SCP pour copier le répertoire d'un hôte local vers un hôte distant:
scp -r localhost_path_to_directory username@target_server_ip:/path_to_target_directory/Q # 7) Comment utilisons-nous SCP pour tous les fichiers d'un répertoire?
Répondre: Pour utiliser SCP sur tous les fichiers d'un répertoire, vous devez ajouter * avec le chemin du répertoire:
scp -r localhost_path_to_directory/* username@target_server_ip:/path_to_target_directory/De cette façon, tous les fichiers du répertoire local seront copiés dans le répertoire distant.
Q # 8) Pouvons-nous utiliser SCP sous Windows?
Répondre: Oui, vous pouvez utiliser SCP sous Windows. Cependant, il n'est pas pré-téléchargé sous Windows, contrairement à Linux et Mac, donc pour Windows, vous devez installer le logiciel SCP séparément.
Vous pouvez télécharger Putty qui inclut SCP pour Windows (logiciel appelé Putty SCP (PSCP), ou vous pouvez télécharger WinSCP (Windows Secure Copy). Le client PSCP s'exécute directement à partir de l'invite de commande Windows. Il existe également d'autres logiciels pour utiliser SCP sous Windows .
Q # 9) Comment utilisons-nous SCP pour plusieurs fichiers?
Répondre: Pour copier plusieurs fichiers d'un hôte local vers un hôte distant à l'aide de SCP:
scp file1 file2 UserName@TargetHost:TargetDirectoryPathPour copier plusieurs fichiers d'un hôte distant vers un répertoire actuel de localhost à l'aide de SCP:
scp UserName@SourceHost:SourceDirectoryPath{file1, file2}Q # 10) Quelle est la différence entre SCP et SFTP?
Répondre: SCP est le protocole de copie sécurisée. SFTP est le protocole de transfert de fichiers sécurisé. Les deux utilisent le port TCP 22 et fonctionnent sur le mécanisme SSH. Mais ils diffèrent dans les spécifications et les fonctions.
SCP ne transfère que les données, tandis que SFTP effectue également des fonctions d'accès aux fichiers et de gestion de fichiers, en plus du transfert de fichiers. Avec SFTP, vous pouvez effectuer des opérations telles que la liste des répertoires distants ou la suppression de fichiers. Mais SCP autorise uniquement la copie de fichiers et de répertoires entre les serveurs.
La vitesse de transfert de fichiers dans SCP est plus rapide que SFTP car elle utilise un algorithme plus efficace pour transférer des fichiers.
antivirus avec VPN intégré
Dans SFTP, vous pouvez reprendre le transfert de fichiers interrompu à partir du client de ligne de commande. Mais SCP n'a pas cette fonction.
SFTP offre un composant GUI mais SCP ne l'a pas.
Q # 11) Qu'est-ce que la commande SCP dans Windows pour copier en toute sécurité un fichier?
Répondre: Ouvrez l'invite de commande Windows et donnez la commande ci-dessous pour copier en toute sécurité un fichier d'une machine locale Windows vers un serveur (il peut s'agir d'un serveur Linux):
pscp filepath userid @ target_server_ip: target_path
Exemple: pscp c: desktop sample.txt userxyz@192.162.x.x: /tmp/foo/sample.txt
Vous devez avoir PSCP installé pour exécuter cette commande.
Q # 12) SCP est-il sécurisé?
Répondre: Oui, SCP est sécurisé. Il utilise le mécanisme SSH (Secure Shell Protocol) pour le transfert de données, ainsi il bénéficie de la sécurité offerte par SSH. Les données en transit sont gardées confidentielles et leur authenticité est également garantie.
Conclusion
Dans ce didacticiel, nous avons vu comment utiliser la commande SCP pour copier en toute sécurité les fichiers entre deux hôtes distants ou entre un hôte local et un hôte distant, sans lancer une session FTP ou se connecter explicitement aux machines distantes.
SCP utilise le mécanisme SSH pour copier les données et donc les données en transit sont cryptées et sécurisées. Il a besoin d'un mot de passe ou d'une clé pour l'authentification. Contrairement à RCP (Remote Copy Protocol) ou FTP (File Transfer Protocol), SCP crypte à la fois le fichier et les mots de passe échangés entre les systèmes pour protéger toute surveillance sur le réseau.
lecture recommandée
- Commande Cut sous Unix avec des exemples
- Commande Rechercher sous Unix: Rechercher des fichiers avec Unix Rechercher un fichier (exemples)
- Syntaxe des commandes Unix Cat, options avec exemples
- Commande Ls sous Unix avec des exemples
- Arguments de ligne de commande dans un script shell Unix avec exemple
- Commande Grep sous Unix avec des exemples simples
- Manipulation de fichiers sous Unix: présentation du système de fichiers Unix
- Commande de tri Unix avec syntaxe, options et exemples
