Transférer des fichiers sur la Raspberry Pi sans FTP avec SSH.
CommentairesJe 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 :
- Une Raspberry Pi connectée au réseau
- Son alimentation
- Sa carte SD
- Un deuxième PC sur le réseau, sous Linux, Windows ou Mac.
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.
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.
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.
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 ».
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 ».
Et voilà, vous êtes connecté à votre Raspberry Pi ! Vous pouvez désormais explorer le système de fichier comme le pourrait votre utilisateur Pi.
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 !
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 😉
Merci pour l’info, c’est vrai qu’avec l’arrivé d’un noyau linux plus ou moins embarqué les choses évolues à ce niveau.
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
Salut, merci pour l’info.
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 🙂
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.