Avez-vous déjà eu envie de transférer des fichiers sur un réseau d'ordinateurs et rencontré des problèmes de sécurité ? Eh bien, vous ne pouvez pas simplement jeter vos fichiers sur le réseau et souhaiter qu'ils restent sécurisés, comme Le Chaperon Rouge ! Vous avez besoin de mesures de sécurité. Vous devez utiliser un protocole de transfert de fichiers qui garantit que vos données sont protégées contre les accès non autorisés, le reniflage du réseau, les violations de données et d'autres types de menaces.
Secure Copy Protocol (SCP) est un puissant protocole réseau de transfert de fichiers qui transfère des fichiers entre différentes machines sur un réseau. Dans cet article de blog, nous nous familiariserons davantage avec ce protocole et explorerons les potentiels de l’utilisation de SCP depuis des machines distantes vers des machines locales.
Comment fonctionne le SCP ?
SCP utilise SSH (Secure Shell) pour transférer vos fichiers. Mais qu’est-ce que cela signifie ? SSH est un protocole réseau permettant un accès à distance sûr et sécurisé aux serveurs. Il est équipé de méthodes d’authentification, de cryptage et de vérification de l’intégrité des fichiers de données transmis. SCP s'appuie sur ces fonctionnalités de sécurité et méthodes de cryptage fournies par SSH pour transférer des fichiers sur un réseau en toute sécurité. De cette façon, vous pouvez utiliser SCP depuis des serveurs distants vers des serveurs locaux pour une connexion et un transfert de fichiers sécurisés et être sûr de l'authenticité et de la confidentialité de vos données.
Utilisation de SCP pour les transferts de fichiers ; Pourquoi et comment ?
L'utilisation de SCP de distant vers local et de SCP local vers distant est un moyen efficace et flexible de transférer des fichiers. SCP offre des avantages majeurs pour le transfert de fichiers. Par exemple, SCP offre des mesures de sécurité plus robustes que d'autres méthodes de transfert de fichiers comme FTP. Un autre aspect dans lequel SCP diverge des autres protocoles est la vitesse. SCP est généralement beaucoup plus rapide que d’autres protocoles comme SFTP et constitue un excellent outil pour le transfert de fichiers entre machines Linux.
Vous pouvez déplacer des fichiers avec SCP :
- D'une machine locale vers une machine distante
- D'une machine distante vers une machine locale
- D'une machine distante vers une autre machine distante.
Passons maintenant à l’utilisation de la syntaxe Linux SCP pour le transfert de fichiers. La première chose à faire est de configurer SSH sur vos deux ordinateurs. Cependant, il est important de noter que SSH est généralement installé sur toutes les machines Linux. Donc, si tel est votre cas, vous pouvez ignorer ces étapes.
1. Configuration de SSH
Exécutez la commande suivante pour installer SSH :
sudo apt install openssh-client
2. Générer des clés SSH
L'appareil client doit alors établir une connexion SSH. Une connexion sécurisée entre les machines client et serveur nécessite l’établissement d’une clé privée et d’une clé publique. Cette commande crée une paire de clés SSH pour vous :
ssh-keygen
lors de l'exécution de cette commande, il vous sera probablement demandé de fournir un nom pour la paire de clés et une phrase secrète (ceci est facultatif). Ensuite, lorsque la paire de clés est créée, vous devez copier la clé publique sur la machine serveur.
Voyons maintenant la forme générale de la commande SCP :
scp [options] [source username@IP]:/[directory/file name] [destination username@IP]:/[directory]
- [options] > Cette première parenthèse peut être remplacée par différentes options de la commande SCP auxquelles nous reviendrons plus tard.
- [nom d'utilisateur source@IP] > Cette parenthèse doit être remplacée par le nom d'utilisateur et l'adresse IP de la machine locale. Par exemple : [email protected]
- [répertoire/nom du fichier] > Ce crochet doit être remplacé par l'emplacement du fichier que vous souhaitez envoyer.
- [nom d'utilisateur de destination @ IP] > Cette parenthèse doit être remplacée par le nom d'utilisateur et l'adresse IP de la machine réceptrice.
- [répertoire] > Remplacez cette section par l'emplacement souhaité de votre fichier sur la machine distante.
Alors maintenant, vous savez à quoi ressemble la commande générale. Regardons toutes les options utiles de la commande SCP :
| Option | Cas d'utilisation |
| -C |
En utilisant cette option, SCP compresse vos fichiers lors de leur transfert.
|
| -c <chiffre> |
Vous pouvez utiliser cette option pour indiquer à SCP d'utiliser un chiffrement spécifique. Par exemple, scp -c <aes128-ctr>.
|
| -v |
Cette option vous donne un déroulement étape par étape du processus.
|
| -l <limite en kilo-octets> |
Cette option vous permet de définir une limite pour la bande passante maximale. Par exemple, l'exemple suivant définit l'utilisation de la bande passante à 100 Ko par seconde : scp -l 100
|
| -P |
En utilisant cette option, vous pouvez modifier le port ssh du serveur distant auquel vous souhaitez vous connecter. SCP utilise le port 22 par défaut.
|
| -S <nom du programme> |
Vous pouvez utiliser cette option pour choisir un programme de connexion.
|
| -r |
Copiez un fichier ou un répertoire entier de manière récursive.
|
Transférer des fichiers avec SCP
Alors, vous vous souvenez que nous avons trois types de transferts avec SCP, n'est-ce pas ? Nous souhaitons maintenant explorer chaque type de transfert de manière dépendante. Mais définissons la mission avant de commencer. J'ai cette photo de chat sur le bureau de mon ordinateur Linux et dans un premier temps, je souhaite la transférer sur un serveur distant Linux. Ensuite, je le transférerai sur mon ordinateur local. Et enfin, le chat porte-bonheur se déplacera entre deux machines distantes.

SCP du local au distant
L'utilisation de cette commande transférera notre fichier d'un ordinateur local vers un serveur distant :
scp [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Pour utiliser la commande scp avec un mot de passe, vous devez saisir le mot de passe de votre serveur distant. Et puis vous avez terminé.

SCP de distant à local
Afin d’inverser ce processus, vous n’avez pas besoin d’accéder au terminal de votre serveur distant. Sur le terminal de votre ordinateur local, tapez cette commande :
scp [username]@[IP address of the remote machine]:[path/to/the/file] [path/to/the/location]
Comme vous pouvez le constater, nous venons d'inverser les deux parties de cette commande.

SCP entre deux machines distantes
Maintenant, transférons le chat entre deux machines distantes. Cette étape nécessite le mot de passe des deux machines distantes, alors assurez-vous de les avoir. Utilisez cette commande pour transférer un fichier entre deux ordinateurs distants :
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]

Autres commandes SCP courantes
Les commandes SCP les plus courantes sont scp de distant à local, scp de local à distant et SCP entre deux hôtes distants. Mais ne nous arrêtons pas là et explorons un autre exemple utile de scp Linux.
1. Copie récursive d'un répertoire entier
Imaginez que vous souhaitiez transférer un répertoire entier avec tous les fichiers qu'il contient. Cela prendrait beaucoup de temps de transférer ces fichiers un par un. Au lieu de cela, vous pouvez utiliser la commande scp multiple files pour copier un répertoire de manière récursive :
scp -r [Path/to/directory] [username of the remote server]@[Ip address]:/[path/to/the/location]
Cela peut être utile dans de nombreux scénarios :
- Déploiement de codes : lorsque vous déployez du code ou des applications Web, vous devrez peut-être transférer un répertoire entier avec tous ses composants tels que des fichiers et des scripts.
- Sauvegarde et synchronisation : SI vous souhaitez avoir une sauvegarde d'un répertoire entier ou si vous souhaitez synchroniser deux répertoires sur la machine locale et le serveur distant, vous devez tout copier de manière récursive.
- Migration du système : Une tâche cruciale dans la migration du système consiste à copier et transférer chaque élément d’information vitale. L'utilisation de la commande SCP avec l'option -r garantira que vous ne manquerez rien dans votre processus de déplacement.
2. Limiter l'utilisation de la bande passante
Si vous souhaitez contrôler la vitesse à laquelle vos données sont transférées, vous pouvez utiliser la commande suivante :
scp -l <limit> [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Mais pourquoi ferais-tu ça ?
Dans ces deux scénarios, vous pouvez utiliser la syntaxe Linux scp pour définir une limite de bande passante :
- Encombrement du réseau : Si votre réseau est très encombré, limiter la bande passante avec scp peut faciliter la répartition des ressources réseau. La limitation de la bande passante avec SCP garantit que les autres tâches liées au réseau s'exécutent sans aucun problème. Ceci est également important lors du transfert de fichiers sur un réseau partagé, et votre processus peut gêner les activités réseau des autres utilisateurs.
- Transferts en arrière-plan : During background SCP transfers like automated backups or synchronization processes, there’s a chance that these tasks will gobble up your network resources. Dans ce cas, vous pouvez limiter la bande passante sur ces processus de transfert pour mieux gérer les ressources.
3. Obtenir un journal détaillé
L'utilisation de l'option -v avec SCP vous donnera un journal détaillé d'informations supplémentaires sur le processus de transfert. Vous pouvez utiliser la commande ci-dessous pour obtenir des commentaires et des informations détaillés :
scp -v [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Voici pourquoi vous devez mémoriser et utiliser cette commande :
- Dépannage : l'utilisation de cette option vous montre la progression du transfert en action. Vous pouvez voir des informations telles que la taille du fichier et le pourcentage d’achèvement. Il vous donne également des messages d'erreur et des avertissements. La combinaison de ces données vous permet de surveiller et de dépanner le processus de transfert en cas de besoin.
4. Spécification d'un port SSH
L'utilisation de la syntaxe Linux scp avec l'option -P vous permet de changer le port SSH. Voici la commande qui vous permet de faire cela :
scp -P [port number] [path/to/the/file] [Username]@[IP address]:[path/to/the/location]
Cela peut être utile pour :
- Configuration du pare-feu : Si le port SSH par défaut est restreint ou si vous souhaitez masquer le service SSH des menaces potentielles, vous pouvez modifier le port SSH.
Existe-t-il des alternatives au SCP ?
SCP est rapide et sécurisé, et en connaissant la bonne syntaxe Linux scp et quelques connaissances en dépannage, il peut être le seul outil dont vous avez besoin. Cependant, il n’y a aucun mal à revoir ses alternatives.
1. rsync
rsync est un outil de transfert de fichiers polyvalent doté de capacités de synchronisation avancées, de transferts incrémentiels et de copie à distance et locale. Il peut également réduire l'utilisation de la bande passante en transférant uniquement les différences entre les fichiers source et de destination. Un autre grand avantage de l'utilisation de rsync est qu'il peut reprendre les transferts de fichiers interrompus là où ils se sont arrêtés et poursuivre le processus.
Avantages de rsync
- Synchronisation efficace des fichiers et répertoires.
- Prend en charge l'algorithme de transfert delta, réduisant le transfert de données.
- Peut reprendre les transferts interrompus.
Inconvénients de rsync
- Nécessite que rsync soit installé sur les systèmes source et de destination.
- Nécessite plus d'options de configuration et de commande par rapport à scp.
2. SFTP (protocole de transfert de fichiers SSH)
SFTP fournit un moyen sécurisé de transférer des fichiers via SSH. Il offre des fonctionnalités similaires à FTP mais fonctionne via une connexion SSH cryptée, tout comme SCP. Mais dans certains domaines, les avantages de SFTP l’emportent sur ceux de SCP. SCP ne peut pas générer de listes de répertoires, créer ou supprimer des répertoires, etc. SFTP, cependant, peut effectuer toutes ces tâches.
Avantages SFTP
- Transfert de fichiers sécurisé avec cryptage.
- Capacités de gestion de fichiers à distance.
- Large disponibilité sur la plupart des systèmes Linux et Unix.
Inconvénients du SFTP
- La syntaxe et l'utilisation des commandes diffèrent du FTP traditionnel.
- Peut avoir une prise en charge limitée sur certains systèmes ou appareils embarqués.
3. FTP (protocole de transfert de fichiers)
FTP est un protocole standard largement utilisé pour le transfert de fichiers. Il fonctionne selon un modèle client-serveur et offre des fonctionnalités de transfert de fichiers de base.
Avantages du FTP
- Large support sur diverses plates-formes.
- Des clients graphiques et en ligne de commande familiers sont disponibles.
Inconvénients du FTP
- Manque de cryptage/moins sécurisé par rapport à scp et sftp.
- Peut nécessiter une configuration de pare-feu supplémentaire pour établir les connexions.
- Authentification en texte brut.
Dans l'ensemble, bien que scp soit un choix simple et fiable pour le transfert de fichiers sécurisé via SSH, des alternatives telles que rsync, sftp et FTP peuvent offrir des fonctionnalités et une flexibilité supplémentaires en fonction des exigences spécifiques.
Alors, comment décider lequel choisir ? Vous devez prendre en compte des facteurs tels que la sécurité, les besoins de synchronisation, la facilité d'utilisation et la compatibilité avec vos systèmes et protocoles. Par exemple, si la sécurité et la confidentialité des données sont les facteurs les plus importants dans votre transfert de fichiers, alors FTP n'est pas un bon choix.
Conclusion
SCP est un outil rapide et sécurisé pour le transfert de fichiers entre ordinateurs. Vous pouvez utiliser scp de distant vers local, de local vers distant et même entre deux systèmes distants pour transférer des fichiers. Et bien qu'il existe des alternatives à SCP qui font un travail adéquat, comme rsync, il les transcende à bien des égards, notamment en termes de sécurité et de rapidité. Dans cet article de blog, nous avons parlé de SCP, de ses cas d'utilisation et de ses alternatives, et avons également fourni un aide-mémoire pour un accès facile à la syntaxe fréquemment utilisée.
FAQ
Y a-t-il des problèmes de sécurité dont je devrais être conscient lors de l'utilisation de SCP de distant à local ?
SCP est un outil plutôt sûr et sécurisé, et vous n'avez pas à vous soucier des menaces de sécurité lors de son utilisation. Cependant, il est toujours recommandé de prendre toutes les mesures de sécurité supplémentaires possibles.
Quelles sont les erreurs courantes qui se produisent lors de l’utilisation de SCP distant vers local ?
Lors de l'utilisation de SCP pour transférer des fichiers d'un serveur distant vers une machine locale, les utilisateurs peuvent rencontrer plusieurs erreurs courantes. Voici deux des erreurs les plus courantes lors de l'utilisation de SCP distant vers local :
- Aucun fichier ou répertoire de ce type : cette erreur se produit lorsque vous n'avez pas spécifié le bon numéro de port, que les paramètres d'autorisation de fichier sont incorrects ou lorsque les informations de connexion sont incorrectes.
- Échec de la vérification de la clé de l'hôte : ce message d'erreur s'affiche lorsque la clé de l'hôte a changé en raison de mises à niveau du serveur. La clé d'hôte indique que vous vous êtes déjà connecté à ce serveur et lorsque la vérification de la clé d'hôte échoue, elle indique que l'identité du serveur a changé. Cette erreur tente de vous empêcher de vous connecter à un serveur frauduleux.
Comment utiliser SCP pour transférer des fichiers entre des systèmes distants ?
Afin de réussir le transfert de fichiers entre systèmes à l'aide de SCP, les deux ordinateurs doivent être accessibles via SSH. vous avez également besoin de l'adresse IP et du mot de passe des machines distantes. Le reste consiste simplement à utiliser la bonne commande SCP :
scp [username of the 1st remote machine]@[IP address of the 1st remote machine]:[path/to/the/file] [username of the 2nd remote machine]@[IP address of the 2nd remote machine]:/[path/to/location]
Après avoir tapé cette commande, il vous sera demandé de fournir le mot de passe aux serveurs. Après cela, votre fichier sera transféré.