SSH et SCP · 6 min read · Nov 22, 2025
Utilisation de secure shell (SSH) pour la connexion et de secure copy (SCP) pour le transfert de données sur Linux
SSH signifie shell sécurisé. C’est un protocole de connexion à distance chiffré. Une fois qu’il a été configuré sur chaque nœud, il peut être utilisé pour communiquer avec divers autres nœuds dans ce réseau.
Les principaux avantages de SSH sont :
- SSH utilise l’algorithme de chiffrement RSA pour générer des clés publiques et privées, rendant l’intrusion extrêmement difficile.
- Étant donné que SSH est un protocole de connexion à distance, il peut être configuré sur un ordinateur portable. Cela signifie que vous pouvez utiliser votre ordinateur portable pour vous connecter sans fil au cluster Raspberry Pi.
- Parce que des protocoles comme SCP (Secure Copy) et SFTP (Secure File Transfer Protocol) fonctionnent au-dessus de SSH, vous pouvez les utiliser pour transférer des fichiers et des dossiers directement d’un nœud à un autre.
- SSH prend en charge la connexion unique. Cela signifie que vous n’avez qu’à entrer vos identifiants la première fois que vous vous connectez. À partir de la deuxième connexion, ce n’est pas nécessaire.
Commençons par générer des clés SSH. Pour que SSH soit utilisé, les clés doivent être générées entre deux nœuds ou plus afin que le transfert de données puisse avoir lieu. Nous utilisons RSA pour le chiffrement. Notez que sur un nœud, nous générons les clés et il aura les clés privées ou secrètes. Le même nœud générera également une clé publique qui sera envoyée aux autres nœuds qui souhaitent envoyer des données à ce nœud. Exécutez les commandes suivantes sur le nœud à partir duquel vous souhaitez envoyer des données. J’appelle ce nœud le “nœud maître” et les autres nœuds “nœuds travailleurs”.
cd ~
ssh-keygen --t rsa --C "raspberrypi@raspberrypi"Ces deux commandes définissent un emplacement par défaut de /home/pi/_ssh/id_rsa pour stocker la clé.
Si on vous demande une phrase de passe, laissez la phrase de passe vide. Une fois cela fait, l’étape suivante consiste à envoyer les clés publiques au nœud de travail. Assurez-vous donc que le nœud de travail est connecté au réseau. Maintenant, nous pouvons configurer les clés de chiffrement sur le nœud de travail, donc l’adresse IP utilisée est l’adresse IP du nœud de travail. Exécutez la commande suivante sur le nœud maître.
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir .ssh;cat >> .ssh/authorized_keys"Une fois les clés SSH générées, nous pouvons nous connecter à tout autre nœud auquel les clés ont été envoyées depuis le nœud maître et pour ce faire, utilisez la commande :
ssh [email protected]Dans la commande ci-dessus, “pi” indique l’utilisateur, par défaut tous les PIs utilisant Raspbian auront l’utilisateur comme “pi” et “192.168.3.216” est l’IP de mon client. Vous devrez le changer pour représenter l’adresse IP de votre client PI.
Cela demandera un mot de passe. Une fois connecté, toutes les commandes que vous tapez s’exécuteront sur ce nœud et non sur le maître, mais la sortie sera affichée sur le maître lui-même. SSH peut également être utilisé pour exécuter des commandes directement sur les autres nœuds. Par exemple, pour changer le nom d’hôte de différents nœuds, utilisez ces commandes dans un format comme ci-dessous :
ssh [email protected] 'sudo echo "cilent001" | sudo nano /etc/hostname'
ssh [email protected] 'sudo echo "cilent002" | sudo nano /etc/hostname'
ssh [email protected] 'sudo echo "cilent003" | sudo nano /etc/hostname'Comme montré ci-dessus, nous pouvons utiliser SSH pour exécuter des commandes sur d’autres nœuds/PIs sans réellement se connecter à eux. Voici un autre exemple pour éteindre en toute sécurité un nœud dans le réseau avec l’adresse IP 192.168.3.216
ssh [email protected] 'sudo poweroff'La figure suivante montre comment SSH est utilisé pour se connecter à un nœud de travail (192.168.3.216) et depuis le nœud de travail, récupérer le terminal de contrôle vers le nœud maître.

Comme on peut le voir dans la figure ci-dessus, se connecter à un nœud de travail se fait directement, c’est-à-dire sans saisie de mot de passe sauf pour la première fois. Mais chaque fois que le contrôle du terminal revient au nœud maître (192.168.3.215), les identifiants de connexion doivent être saisis. De cette manière, le maître est toujours protégé des menaces extérieures.
Donc, après avoir émis des commandes via SSH vers d’autres nœuds, il peut y avoir des situations où des données doivent être envoyées à plusieurs nœuds. Si le nombre de nœuds est petit, alors nous pouvons nous connecter manuellement à chaque nœud, le connecter à un écran et un clavier, et envoyer des fichiers. Mais c’est une manière très inefficace de le faire lorsque la taille du cluster est grande. Une manière plus simple serait d’utiliser SCP pour envoyer des fichiers. Installez SCP en utilisant la commande :
sudo apt-get install scpVeuillez noter que certains systèmes d’exploitation Linux peuvent venir avec SCP préinstallé, mais le Raspbian que nous utilisions ne l’avait pas. La commande générale pour envoyer un seul fichier est :
scp (chemin du fichier sur l'appareil local) [email protected] (chemin de l'emplacement distant)Exemple :
scp /pi/example.c [email protected] /pi/projectIci, l’appareil distant pour envoyer des données est reconnu par l’adresse IP. De nombreux fichiers dans un répertoire peuvent être envoyés en utilisant l’option récursive (-R). Par exemple :
scp -r /pi/project [email protected] /pi/projectLa commande ci-dessus transfère récursivement tous les fichiers dans le /pi/project de l’hôte local vers le dossier récursif dans l’hôte distant identifié par l’adresse IP.
L’image ci-dessous démontre les différentes commandes ssh et scp. Elle commence par lister le contenu de son dossier actuel, puis appelle “scp” récursivement pour transférer tous les fichiers dans le dossier actuel vers un dossier dans un autre nœud. Elle se connecte ensuite à l’autre nœud et montre que le scp a réussi à transférer le contenu à la destination.

SCP peut être utilisé avec quelques autres options pour rendre le transfert conforme à certaines de nos conditions. Voici quelques options :
- Nous pouvons utiliser l’option “-p” pour préserver les heures de modification, les heures d’accès et les modes du fichier original. Exemple : Ici, l’heure d’accès, les modes d’accès et l’heure de dernière modification du fichier “test.c” seront préservés dans le nœud de destination également.
scp -p test.c [email protected]:~/ - SCP permet aux fichiers d’être compressés avant d’être envoyés à travers le réseau vers la destination. Cela est très utile lorsque le(s) fichier(s) est très volumineux à transférer, et donc la compression augmentera la vitesse à laquelle il sera envoyé. Pour ce faire, nous utilisons l’option “-C”. Exemple : Ici, nous pouvons voir que plusieurs options peuvent être utilisées et que leurs fonctionnalités seront toutes appliquées à la commande.
scp -pC test.c [email protected]:~/ - La programmation de sockets implique l’envoi et la réception de données via des ports et SCP peut être utilisé pour envoyer des données à travers des ports spécifiques vers l’hôte distant. Cela peut être fait en utilisant l’option “-P”. Exemple : Ici, le port utilisé pour envoyer des données est 1938.
scp -P 21938 test.c [email protected]:~/ - Il peut y avoir des cas où vous ne voudriez pas connaître l’état du transfert des fichiers, comme dans l’image ci-dessus. Il est logique de désactiver l’état de transfert lorsqu’il y a un grand nombre de fichiers. Nous pouvons le faire en utilisant l’option “-q”. Exemple :
scp -rq ~/files [email protected]:~/filesIci, le contenu du dossier nommé files est transféré vers le dossier files sur un autre nœud, mais la barre d’état et les messages de débogage sont tous désactivés, c’est-à-dire non affichés.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.