Comment transférer en toute sécurité les fichiers avec SFTP

Comment transférer en toute sécurité les fichiers avec SFTP

Introduction

Le transfert de fichiers entre les ordinateurs peut être une douleur. FTP est quelque peu maladroit et ancien, et utiliser les services en ligne n'est pas direct et est loin d'être idéal pour gérer les fichiers sensibles. Git fonctionne bien pour le code et le texte, mais n'est pas le meilleur pour les fichiers binaires et nécessite une configuration d'un référentiel. Alors, quelle est une bonne solution pour envoyer des fichiers directement entre les ordinateurs? SFTP.

SFTP est un protocole de transfert de fichiers sécurisé qui utilise SSH pour envoyer des fichiers entre les ordinateurs. Il est crypté et direct. Il vous permet d'utiliser un service existant pour envoyer des fichiers, réduisant ainsi votre surface d'attaque, et il élimine la nécessité de s'appuyer sur des mots de passe potentiellement vulnérables pour les transferts de fichiers.

Avant d'aller plus loin, vous devez configurer des clés SSH pour les machines avec lesquelles vous souhaitez travailler. Si vous ne savez pas comment, consultez notre guide sur la configuration de l'authentification basée sur la clé SSH.

L'affaire contre FTP

FTP suce. Il n'y a aucun moyen de contourner. FTP est sensible à de nombreux exploits de sécurité et continue d'être une cible préférée pour les assaillants potentiels. Il s'appuie également sur l'authentification du mot de passe, ce qui rend un autre moyen possible qu'un attaquant puisse détruire votre système.

Ce qui rend tout cela particulièrement mauvais, c'est le fait que le but FTPS est de transférer des fichiers. Cela signifie que les mécanismes sont déjà en place pour qu'un attaquant puisse télécharger et exécuter du code malveillant sur votre machine.

Si possible, évitez FTP.

De liaison

La syntaxe de SFTP est très similaire à SSH. La connexion à un serveur n'est pas très différente à l'aide de SFTP qu'avec SSH.

$ sftp nom d'utilisateur @ 192.168.1.1

Qui établira une connexion et vous déposera dans un shell SFTP modifié.

Vous devrez peut-être utiliser un port différent pour SSH / SFTP. Dans ce cas, spécifiez-le avec le -P drapeau.

$ sftp -p 35000 nom d'utilisateur @ 192.168.1.1

Envoi de fichiers

À partir du shell SFTP, vous pouvez utiliser les commandes intégrées de SFTP pour envoyer et recevoir des fichiers. Les commandes de l'une ou l'autre direction sont similaires à CP syntaxe. Pour envoyer un fichier, utilisez le mettre commande.

mettre prendra un fichier local et le placera dans le répertoire de travail actuel de la machine distante.

sftp> mettre localfile

Le file locale sera transféré à votre répertoire actuel. Les dossiers sont similaires. Comme CP, vous pouvez utiliser le -r Flag pour copier un répertoire et son contenu.

sftp> put -r localdir

Recevoir des fichiers

Tirer les fichiers vers le bas fonctionne presque la même chose avec le obtenir commande. Dans ce cas, cela ne dépend pas de votre répertoire actuel. Vous pouvez spécifier un chemin de fichier à copier et un emplacement que vous souhaitez le copier.

SFTP> Obtenez un fichier de télécommande

Cela obtiendra simplement le fichier et le placera dans votre répertoire actuel.

SFTP> Obtenez une télécommande / path / vers / localfile

Ce qui précède obtiendra le même fichier distant et le placera dans un répertoire local spécifique.

Vous pouvez également utiliser le -r signaler obtenir Pour copier un répertoire entier.

sftp> get -r / path / do / remotedir path / to / localdir

S'il est nécessaire de préserver les autorisations exactes du répertoire, ajoutez le -P se précipiter.

sftp> get -pr / path / do / remotedir path / to / localdir

Réflexions de clôture

Encore une fois, la simplicité de la ligne de commande passe. D'accord, vous pouvez donc évidemment utiliser FTP à partir de la ligne de commande, mais la plupart des gens comptent sur des applications GUI inutilement volumineuses pour cela. Même encore, SFTP fournit un moyen simple, propre et sécurisé de transférer des fichiers. En prime, il réduit le nombre de services dont vous avez besoin, vous permet de fermer un port supplémentaire et réduit la surface d'attaque globale de vos serveurs. Cela ressemble à une victoire partout, s'il y en avait un.

Tutoriels Linux connexes:

  • Comment configurer le serveur et le client FTP / SFTP sur Almalinux
  • Configuration du serveur FTP sur Linux
  • Liste des clients FTP et installation sur Ubuntu 22.04 Linux…
  • Comment se connecter à un serveur FTP à l'aide de Python
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Liste des clients FTP et installation sur Ubuntu 20.04 Linux…
  • Choses à installer sur Ubuntu 20.04
  • Comment configurer le serveur SFTP sur Ubuntu 22.04 Jammy Jellyfish…
  • Masterring Bash Script Loops
  • Tutoriel GIT pour les débutants