GNU/Linux >> Tutoriels Linux >  >> Linux

14 exemples de commandes SCP pour transférer des fichiers en toute sécurité sous Linux

SCP (Secure Copy) est un outil de ligne de commande dans les systèmes de type Linux et Unix qui est utilisé pour transférer des fichiers et des répertoires à travers les systèmes en toute sécurité sur le réseau. Lorsque nous utilisons la commande scp pour copier des fichiers et des répertoires de notre système local vers un système distant, puis dans le backend, il établit une connexion ssh au système distant. En d'autres termes, nous pouvons dire que scp utilise le même mécanisme de sécurité SSH dans le backend, il a besoin d'un mot de passe ou de clés pour l'authentification.

Dans ce tutoriel, nous discuterons de la commande scp sous Linux avec des exemples pratiques.

Syntaxe de la commande scp :

# scp [email protected]_host :/

# scp [email protected]_host :/files  

La première syntaxe de la commande scp montre comment copier des fichiers ou des répertoires du système local vers l'hôte cible sous le dossier spécifique.

La deuxième syntaxe de la commande scp montre comment les fichiers de l'hôte cible sont copiés dans le système local.

Certaines des options les plus utilisées dans la commande scp sont répertoriées ci-dessous,

  •  -C         Activer la compression
  •  -i           Fichier d'identité ou clé privée
  •  -l           limiter la bande passante lors de la copie
  •  -P          numéro de port ssh de l'hôte cible
  •  -p          Préserve les autorisations, les modes et l'heure d'accès des fichiers lors de la copie
  •  -q          Supprimer le message d'avertissement de SSH
  •   -r          Copier des fichiers et des répertoires de manière récursive
  •   -v          sortie détaillée

Passons maintenant aux exemples !!!!

Exemple 1) Copier un fichier d'un système local vers un système distant à l'aide de scp

Supposons que nous voulions copier le package jdk rpm de notre système Linux local vers le système distant (172.20.10.8) à l'aide de la commande scp, utilisez la commande suivante,

[[email protected] ~]$ scp jdk-linux-x64_bin.rpm [email protected]:/opt
[email protected]'s password:
jdk-linux-x64_bin.rpm                          100%   10MB  27.1MB/s   00:00
[[email protected] ~]$

La commande ci-dessus copiera le fichier de package jdk rpm sur le système distant sous le dossier /opt.

Exemple 2) Copier un fichier du système distant vers le système local à l'aide de scp

Supposons que nous voulions copier un fichier du système distant vers notre système local sous le dossier /tmp, exécutez la commande scp suivante,

[[email protected] ~]$ scp [email protected]:/root/Technical-Doc-RHS.odt /tmp
[email protected]'s password:
Technical-Doc-RHS.odt                         100% 1109KB  31.8MB/s   00:00
[[email protected] ~]$ ls -l /tmp/Technical-Doc-RHS.odt
-rwx------. 1 pkumar pkumar 1135521 Oct 19 11:12 /tmp/Technical-Doc-RHS.odt
[[email protected] ~]$

 Exemple 3) Sortie détaillée lors du transfert de fichiers à l'aide de scp (-v)

Dans la commande scp, nous pouvons activer la sortie détaillée en utilisant l'option -v, en utilisant la sortie détaillée, nous pouvons facilement trouver ce qui se passe exactement en arrière-plan. Cela devient très utile pour déboguer la connexion , authentification et problèmes de configuration .

[email protected] ~]$ scp -v jdk-linux-x64_bin.rpm [email protected]:/opt
Executing: program /usr/bin/ssh host 172.20.10.8, user root, command scp -v -t /opt
OpenSSH_7.8p1, OpenSSL 1.1.1 FIPS  11 Sep 2018
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.conf
debug1: Reading configuration data /etc/crypto-policies/back-ends/openssh.config
debug1: /etc/ssh/ssh_config.d/05-redhat.conf line 8: Applying options for *
debug1: Connecting to 172.20.10.8 [172.20.10.8] port 22.
debug1: Connection established.
…………
debug1: Next authentication method: password
[email protected]'s password:

Exemple 4) Transférer plusieurs fichiers vers un système distant

Plusieurs fichiers peuvent être copiés/transférés vers un système distant à l'aide de la commande scp en une seule fois, dans la commande scp, spécifiez les multiples fichiers séparés par un espace, l'exemple est illustré ci-dessous

[[email protected] ~]$ scp install.txt index.html jdk-linux-x64_bin.rpm \
 [email protected]:/mnt
[email protected]'s password:
install.txt                                      100%    0     0.0KB/s   00:00
index.html                                       100%   85KB   7.2MB/s   00:00
jdk-linux-x64_bin.rpm                            100%   10MB  25.3MB/s   00:00
[[email protected] ~]$

Exemple 5) Transférer des fichiers sur deux hôtes distants

En utilisant la commande scp, nous pouvons copier des fichiers et des répertoires entre deux hôtes distants, supposons que nous ayons un système Linux local qui peut se connecter à deux systèmes Linux distants, donc à partir de mon système Linux local, je peux utiliser la commande scp pour copier des fichiers sur ces deux systèmes,

Syntaxe :

# scp [email protected]_hosts1:/  [email protected]_host2:/

L'exemple est montré ci-dessous,

# scp [email protected]:~/backup-Oct.zip [email protected]:/tmp
# ssh [email protected] "ls -l /tmp/backup-Oct.zip"
-rwx------. 1 root root 747438080 Oct 19 12:02 /tmp/backup-Oct.zip

Exemple 6) Copier des fichiers et des répertoires de manière récursive (-r)

Utilisez l'option -r dans la commande scp pour copier de manière récursive l'intégralité du répertoire d'un système à un autre, l'exemple est illustré ci-dessous,

[[email protected] ~]$ scp -r Downloads [email protected]:/opt

Utilisez la commande ci-dessous pour vérifier si le dossier de téléchargement est copié sur le système distant ou non,

[[email protected] ~]$ ssh [email protected] "ls -ld /opt/Downloads"
drwxr-xr-x. 2 root root 75 Oct 19 12:10 /opt/Downloads
[[email protected] ~]$

Exemple 7) Augmenter la vitesse de transfert en activant la compression (-C)

Dans la commande scp, nous pouvons augmenter la vitesse de transfert en activant la compression à l'aide de l'option -C, cela activera automatiquement la compression à la source et la décompression à l'hôte de destination.

[email protected] ~]$ scp -r -C Downloads [email protected]:/mnt

Dans l'exemple ci-dessus, nous transférons le répertoire de téléchargement avec la compression activée.

Exemple 8) Limiter la bande passante lors de la copie ( -l )

Utilisez l'option '-l' dans la commande scp pour limiter l'utilisation de la bande passante lors de la copie. La bande passante est spécifiée en Kbit/s, l'exemple est montré ci-dessous,

[[email protected] ~]$ scp -l 500 jdk-linux-x64_bin.rpm  [email protected]:/var

Exemple 9) Spécifiez un port ssh différent tandis que scp ( -P)

Il peut y avoir un scénario où le port ssh est modifié sur l'hôte de destination, donc lors de l'utilisation de la commande scp, nous pouvons spécifier le numéro de port ssh en utilisant l'option '-P'.

[[email protected] ~]$ scp -P 2022 jdk-linux-x64_bin.rpm  [email protected]:/var

Dans l'exemple ci-dessus, le port ssh pour l'hôte distant est "2022"

Exemple 10) Préserve les autorisations, les modes et le temps d'accès des fichiers lors de la copie (-p)

Utilisez l'option "-p" dans la commande scp pour préserver les autorisations, l'heure d'accès et les modes lors de la copie de la source à la destination

[[email protected] ~]$ scp -p jdk-linux-x64_bin.rpm  [email protected]:/var/tmp
jdk-linux-x64_bin.rpm                            100%   10MB  13.5MB/s   00:00
[[email protected] ~]$

Exemple 11) Transfert de fichiers en mode silencieux ( -q) dans scp

Utilisez l'option '-q' dans la commande scp pour supprimer la progression du transfert, les messages d'avertissement et de diagnostic de ssh. L'exemple est montré ci-dessous,

[[email protected] ~]$ scp -q -r Downloads [email protected]:/var/tmp
[[email protected] ~]$

Exemple 12) Utiliser Identifier le fichier dans scp lors du transfert ( -i )

Dans la plupart des environnements Linux, l'authentification basée sur des clés est préférée. Dans la commande scp, nous spécifions le fichier d'identification ou le fichier de clé privée à l'aide de l'option "-i", l'exemple est illustré ci-dessous,

[[email protected] ~]$ scp -i my_key.pem -r Downloads [email protected]:/root

Dans l'exemple ci-dessus, "my_key.pem" est le fichier d'identité ou le fichier de clé privée.

Exemple 13) Utiliser un fichier "ssh_config" différent dans scp ( -F)

Il existe certains scénarios dans lesquels vous utilisez différents réseaux pour vous connecter aux systèmes Linux, peut-être qu'un réseau se trouve derrière des serveurs proxy, donc dans ce cas, nous devons avoir différents ssh_config fichier.

Un fichier ssh_config différent dans la commande scp est spécifié via l'option '-F', l'exemple est illustré ci-dessous

[[email protected] ~]$ scp -F /home/pkumar/new_ssh_config -r Downloads \ 
[email protected]:/root
[email protected]'s password:
jdk-linux-x64_bin.rpm                     100%   10MB  16.6MB/s   00:00
backup-Oct.zip                            100%  713MB  41.9MB/s   00:17
index.html                                100%   85KB   6.6MB/s   00:00
[[email protected] ~]$

Exemple 14) Utiliser un chiffrement différent dans la commande scp (-c)

Par défaut, scp utilise le chiffrement "AES-128" pour chiffrer les fichiers. Si vous souhaitez utiliser un autre chiffrement dans la commande scp, utilisez l'option '-c' suivie du nom du chiffrement,

Supposons que nous voulions utiliser le chiffrement '3des-cbc' dans la commande scp lors du transfert des fichiers, exécutez la commande scp suivante

[[email protected] ~]# scp -c 3des-cbc -r Downloads [email protected]:/root

Utilisez la commande ci-dessous pour répertorier les chiffrements ssh et scp,

[[email protected] ~]# ssh -Q cipher localhost | paste -d , -s -
3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,[email protected],\
aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],\
[email protected]
[[email protected] ~]#

C'est tout de ce tutoriel, pour obtenir plus de détails sur la commande scp, veuillez vous référer à sa page de manuel. Veuillez partager vos commentaires et commentaires dans la section des commentaires ci-dessous.

Lire aussi  : 11 exemples de commande "df" sous Linux


Linux
  1. Commande d'arrêt Linux (avec exemples)

  2. Exemples pratiques de la commande rsync sous Linux

  3. Comment transférer des fichiers en toute sécurité à l'aide de SCP

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

  5. Exemples de commande "shutdown" sous Linux

Exemples Rsync pour transférer des fichiers sous Linux

Exemples de commandes Wget utiles dans le système Linux

15 exemples utiles de commande touch dans le système Linux

Commande Linux SCP pour transférer des fichiers en toute sécurité

Commande lsof sous Linux avec exemples

Commande comm Linux avec exemples