Transfert de fichiers en SSH.

Transférer des fichiers sur la Raspberry Pi sans FTP avec SSH.

Mis à jour le 7 octobre 2019 - 6 Commentaires - , , , ,

Je suis certain que vous avez déjà eu besoin de transférer des fichiers depuis votre PC vers votre Raspberry Pi en passant par le réseau. Si c’est le cas, il y a de fortes chances pour que vous ayez dû installer un serveur FTP. Et pourtant, il y avait un moyen beaucoup plus simple…

Dans ce tutoriel nous verrons comment transférer des fichiers depuis notre ordinateur sur notre Raspberry Pi sans avoir à installer de serveur FTP, mais uniquement en utilisant le serveur SSH déjà installé sur la Raspberry Pi et la commande scp !

Le matériel utilisé dans ce tutoriel

Dans ce tutoriel nous allons utiliser le matériel suivant :

Par ailleurs, pour réalisez ce tutoriel vous devrez également avoir activé le serveur SSH de votre Raspberry Pi. Si vous ne savez pas comment faire, consultez notre tutoriel pour activer SSH.

Transférer des fichiers avec SSH, c’est quoi SCP ?

Si vous utilisez la Raspberry Pi vous avez probablement déjà entendu parler de SSH, un outil qui vous permet de prendre le contrôle d’un ordinateur à distance en lignes de commandes. Mais ce que vous ignoriez peut-être, c’est que SSH ne sert pas qu’à ça.

Une des nombreuses utilisations possibles de SSH, c’est SCP, pour Secure CoPy. Il s’agit d’un protocole permettant de transférer des fichiers d’un ordinateur à un autre, en s’appuyant sur le protocole SSH qui chiffrera les données transférées.

Prenez le contrôle de votre Raspberry Pi avec SSH
SSH est un protocole de contrôle à distance avec chiffrement des données.

Pour nous qui travaillons avec la Raspberry Pi, SCP est donc particulièrement intéressant, puisque la Raspberry Pi possède déjà un serveur SSH intégré et que nous n’aurons donc pas à installer ou à configurer un serveur, comme c’est le cas avec FTP.

Si vous ne connaissez pas du tout SSH, vous auriez probablement intérêt à lire notre tutoriel sur SSH avant de continuer. Ce n’est pas indispensable, mais je pense que ça rend les choses plus claires.

Transférer des fichiers avec SCP depuis un ordinateur Linux

Si vous travaillez depuis un ordinateur Linux, rien n’est plus simple que d’envoyer un fichier en utilisant SCP, il va suffire d’utiliser la commande scp depuis votre terminal.

La commande scp s’utilise de la façon suivante : scp <ressource_a_envoyer> <destination>

En premier, vous mettez donc la ressource à envoyer (il peut y en avoir plusieurs, séparées par des espaces) et à la fin de la commande l’endroit où les envoyer.

Les ressources et les destinations sont en fait identifiées par des chemins. Il peut s’agir de simples chemins de fichiers, ou il peut s’agir d’identifiants de connexion associés à des chemins de fichiers.

Transfert d'un fichier en SCP.
Ici par exemple, vous pouvez voir le transfert d’un fichier de sauvegarde vers le répertoire temporaire de la Pi.

Et ça fonctionne comme SSH, vous renseignez un compte utilisateur, un hôte, un chemin, on vous demande le mot de passe du compte, et si le mot de passe est bon le fichier est transféré.

Quelques exemples pour mieux comprendre les chemins SCP.

Pour vous aider à mieux comprendre comment ça fonctionne, voici quelques exemples de chemins et de commandes SCP.

Dans tous les exemples ci-dessous, nous enverrons et récupérerons des fichiers depuis une Raspberry Pi connectée sur le réseau à l’adresse IP 192.168.0.15 et avec l’utilisateur par défaut, pi.

Envoyer le fichier /home/bernard/photo.jpg de votre PC vers le répertoire /home/pi de la Raspberry :

scp /home/bernard/photo.jpg pi@192.168.0.15:/home/pi

 

Récupérer le fichier /home/pi/toto.txt sur la Raspberry Pi et le copier dans le dossier /tmp de votre PC :

scp pi@192.168.0.15:/home/pi/toto.txt /tmp

 

Transférer les fichiers ~/file1 et ~/file2 de votre PC vers le dossier /home/pi de votre Raspberry :

scp ~/file1 ~/file2 pi@192.168.0.15:/home/pi

 

Enfin, cas particulier, transférer tout le dossier /home/pi de votre Raspberry Pi vers un nouveau dossier ~/tmp_pi dans votre PC :

scp -r pi@192.168.0.15:/home/pi ~/tmp_pi

Notez l’utilisation de l’argument -r qui permet le transfert de dossier.

 

Sous Linux donc, rien de plus simple que de transférer un fichier sur ou depuis votre Raspberry Pi avec SCP via le réseau !

Transférer des fichiers sur la Raspberry Pi depuis Windows ou Mac OS

Sous Windows ou Mac OS, comme souvent, nous n’allons pas transférer les fichiers directement en lignes de commandes, mais nous allons utiliser une interface graphique à la place.

Nous allons en fait utiliser un outil que vous connaissez probablement si vous avez déjà utilisé un serveur FTP, FileZilla. En effet, si FileZilla est à l’origine un client FTP, il fait aussi office de client SFTP et SCP.

Rendez-vous sur la page de téléchargement de FileZilla, prenez la version adaptée à votre système, installez là et lancez le logiciel.

Interface d'accueil de FileZilla
Au démarrage de FileZilla seule la partie gauche (votre ordinateur) est disponible.

Une fois FileZilla lancé, cliquez sur « Fichier », « Gestionnaire de site », une fenêtre s’ouvre vous permettant de gérer vos sites. Faîtes « Nouveau Site », la partie de droite vous permet de rentrer les informations de connexion à votre Raspberry Pi.

Dans la partie « Hôte », renseignez l’adresse IP de votre Raspberry Pi (si vous ne la connaissez pas, allez voir notre tutoriel pour trouver l’adresse IP de sa Raspberry Pi).

Dans la partie port, renseignez le port SSH de votre Raspberry Pi, par défaut c’est le 22.

Le plus important, dans la partie « Protocole » sélectionnez SSH File Transfer Protocol, c’est un protocole de transfert basé sur SSH qui a remplacé SCP et qui est supporté par FileZilla.

Enfin, pour la partie « Type d’authentification », choisissez « Normal », et renseignez votre utilisateur Raspberry, pi et votre mot de passe.

Il ne vous reste plus qu’à cliquer sur « Connexion ».

Interface d'ajout d'un site pour le transfert SCP/SFTP.
Vos champs devraient ressembler à peu prêt à ça, en adaptant l’IP bien entendu.

Vous devriez alors voir un message apparaître vous demandant de valider la clé du serveur hôte. Cela vient du fait que contrairement à FTP, SFTP utilise SSH pour chiffrer les données, et a donc besoin pour cela d’une clé de chiffrement. Cliquez sur « Valider ».

message de confirmation de la clé ssh
Vous devez valider la clé de chiffrement du serveur.

Et voilà, vous êtes connecté à votre Raspberry Pi ! Vous pouvez désormais explorer le système de fichier comme le pourrait votre utilisateur Pi.

Interface de FileZilla avec connection en SFTP au serveur.
Maintenant que vous êtes connecté au serveur, vous pouvez voir ses fichiers dans la partie droite.

Cela signifie que vous avez le droit de faire sur le serveur tout ce que votre utilisateur Pi peut faire. Vous pouvez ainsi facilement transférer des fichiers entre votre Raspberry Pi et votre Ordinateur par de simples glissé-déposé !

Maintenant, à vous de jouer !

4.9/5 - (17 votes)
Partager
Newsletter
Auteur :
Raspberry Pi FR
Rejoignez la communauté Raspberry Pi
Un ordinateur à 35€ déjà vendu à 10 millions d'exemplaires
ACHETEZ LA NOUVELLE RASPBERRY PI 4
Tutoriels en rapport
Installer un media-center avec OSMC sur votre Raspberry Pi ! RaspiSMS 2.0, envoyer des SMS par internet avec la Raspberry Pi Installer un serveur web sur votre Raspberry (Apache + PHP + MySQL) Bien choisir vos accessoires pour les Raspberry Pi 3 et 2 Installer un serveur Minecraft sur votre Raspberry Pi !
6 commentaires
Besoin d'aide ? Vous la trouverez plus vite sur notre forum.

  1. ombredudoute dit :

    bonjour,
    depuis septembre 2017, openssh est natif sur w10
    https://docs.microsoft.com/fr-fr/windows-server/administration/openssh/openssh_overview
    plus besoin de putty 😉

    1. Merci pour l’info, c’est vrai qu’avec l’arrivé d’un noyau linux plus ou moins embarqué les choses évolues à ce niveau.

  2. Aspic dit :

    Bonjour,

    j’ai découvert Bitvise comme outils pour le SSH et les transfert de fichier c’est parfait je trouve !!

    https://www.bitvise.com/ssh-client

  3. Delavi dit :

    Salut,

    SCP est à oublier:
    « The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead. »
    Source: https://www.openssh.com/txt/release-8.0

    Comme dit, mieux vaut privilégier sftp ou rsync 🙂

    1. Salut, merci pour ton retour.
      Effectivement SCP est moins « puissant » que SFTP, mais c’est quand même très exagéré de le traité de « outdated ». SCP est totalement adapté à un envoi de fichiers en ligne de commandes. Simplement, il ne sert qu’à transférer des fichiers. Il ne peut pas être utilisé pour créer des dossier ou exécuter des commandes.
      Par ailleurs, SCP a des vitesses de transfert un peu supérieures à SFTP, mais garanti moins l’intégrité en cas de pertes de paquets.

      L’avantage que je lui trouve c’est qu’il est plus simple à comprendre ,non interactif, toujours dispo, donc pour les débutants ça me semblait plus adapté.
      Je pense que nous ferons un tuto sur Rsync pour de la sauvegarde à l’occasion.

Partager
Inscription à la Newsletter
Inscrivez-vous à la Newsletter.
Vous avez aimé cet article ?
Inscrivez-vous et restez informé !