Comment résoudre l'erreur 'Password authentication failed' lors de la connexion SFTP sur Linux

LinuxBeginner
Pratiquer maintenant

Introduction

Le SFTP (Secure File Transfer Protocol, Protocole de transfert de fichiers sécurisé) est un protocole réseau qui offre un moyen sûr et fiable de transférer des fichiers entre des systèmes distants. C'est une extension du protocole Secure Shell (SSH), largement utilisé pour l'accès distant sécurisé aux serveurs et autres appareils réseau. Ce tutoriel vous guidera dans la compréhension du SFTP, la configuration des méthodes d'authentification et la mise en œuvre des meilleures pratiques pour sécuriser les connexions SFTP dans un environnement Linux.

Comprendre le transfert de fichiers sécurisé avec le SFTP

Le SFTP, ou Secure File Transfer Protocol (Protocole de transfert de fichiers sécurisé), est un protocole réseau qui offre un moyen sûr et fiable de transférer des fichiers entre des systèmes distants. C'est une extension du protocole Secure Shell (SSH), largement utilisé pour l'accès distant sécurisé aux serveurs et autres appareils réseau.

Le SFTP présente plusieurs avantages par rapport aux protocoles de transfert de fichiers traditionnels, tels que le FTP (File Transfer Protocol, Protocole de transfert de fichiers) et le FTPS (FTP sur SSL/TLS). Le principal avantage du SFTP est sa sécurité intrinsèque, car il chiffre l'ensemble du processus de transfert de fichiers, garantissant que les données restent confidentielles et protégées contre tout accès non autorisé.

L'un des cas d'utilisation courants du SFTP est le partage sécurisé de fichiers entre des emplacements distants, comme le transfert de documents sensibles, de données financières ou de mises à jour de logiciels. Le SFTP peut également être utilisé pour l'administration de systèmes distants, où les administrateurs système peuvent télécharger, charger et gérer des fichiers de manière sécurisée sur des serveurs distants.

Pour illustrer l'utilisation du SFTP, considérons un scénario exemple où vous devez transférer un fichier de votre machine locale vers un serveur Ubuntu 22.04 distant. En supposant que vous ayez établi une connexion SSH avec le serveur distant, vous pouvez utiliser la commande suivante pour démarrer une session SFTP :

sftp user@remote_server

Une fois connecté, vous pouvez naviguer dans le système de fichiers distant, charger, télécharger et gérer des fichiers en utilisant les commandes SFTP suivantes :

## Lister les fichiers dans le répertoire actuel
ls

## Changer de répertoire
cd /path/to/remote/directory

## Charger un fichier de la machine locale vers le serveur distant
put local_file.txt

## Télécharger un fichier du serveur distant vers la machine locale
get remote_file.txt

## Quitter la session SFTP
exit

Ces commandes SFTP de base vous permettent de transférer des fichiers de manière sécurisée entre votre machine locale et le serveur distant. Le protocole SFTP garantit que le processus de transfert de fichiers est chiffré, protégeant les données contre l'écoute clandestine ou l'accès non autorisé.

Dans les sections suivantes, nous explorerons des fonctionnalités SFTP plus avancées, telles que la configuration des méthodes d'authentification et la mise en œuvre des meilleures pratiques pour sécuriser les connexions SFTP.

Configuration des méthodes d'authentification SFTP

Le SFTP prend en charge diverses méthodes d'authentification pour garantir un accès sécurisé aux serveurs distants. Les deux méthodes d'authentification les plus courantes sont l'authentification basée sur un mot de passe et l'authentification par clé publique.

Authentification basée sur un mot de passe

L'authentification basée sur un mot de passe est la méthode la plus simple, où l'utilisateur fournit un nom d'utilisateur et un mot de passe pour s'authentifier auprès du serveur distant. Cette approche convient aux déploiements à petite échelle ou lorsque le SFTP est utilisé pour des transferts de fichiers occasionnels. Pour configurer l'authentification basée sur un mot de passe, vous pouvez utiliser la commande suivante :

sftp user@remote_server

Lorsque vous y êtes invité, entrez le bon nom d'utilisateur et le bon mot de passe pour établir la connexion SFTP.

Authentification par clé publique

L'authentification par clé publique est une méthode plus sûre et recommandée pour l'accès SFTP, car elle élimine le besoin de partager des mots de passe sur le réseau. Cette approche consiste à générer une paire de clés publique et privée et à configurer le serveur distant pour accepter la clé publique pour l'authentification.

Pour configurer l'authentification par clé publique, suivez ces étapes sur votre système Ubuntu 22.04 :

  1. Générez une paire de clés publique et privée en utilisant la commande ssh-keygen :
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  1. Copiez la clé publique générée (généralement située à ~/.ssh/id_rsa.pub) dans le fichier des clés autorisées du serveur distant (habituellement ~/.ssh/authorized_keys).

  2. Configurez le serveur distant pour utiliser l'authentification par clé publique en modifiant le fichier de configuration du démon SSH (/etc/ssh/sshd_config) et en vous assurant que les paramètres suivants sont activés :

PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
  1. Redémarrez le démon SSH pour appliquer les modifications :
sudo systemctl restart sshd

Maintenant, lorsque vous vous connectez au serveur distant en utilisant le SFTP, vous pouvez utiliser la commande suivante pour vous authentifier avec votre clé privée :

sftp -i ~/.ssh/id_rsa user@remote_server

La méthode d'authentification par clé publique offre une solution plus sûre et évolutive, en particulier pour les environnements avec plusieurs utilisateurs ou serveurs, car elle élimine le besoin de gérer et de partager des mots de passe individuels.

Meilleures pratiques pour sécuriser les connexions SFTP

Pour garantir la sécurité de vos connexions SFTP, il est essentiel de mettre en œuvre les meilleures pratiques. Voici quelques recommandations clés :

Appliquer un chiffrement robuste

Le SFTP offre intrinsèquement un chiffrement pour le processus de transfert de fichiers, mais vous pouvez améliorer encore la sécurité en appliquant des algorithmes de chiffrement robustes. Dans le fichier de configuration du démon SSH (/etc/ssh/sshd_config), vous pouvez spécifier les paramètres suivants :

Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com

Ces paramètres garantiront que vos connexions SFTP utilisent les algorithmes de chiffrement et d'authentification de messages les plus sécurisés disponibles.

Restreindre l'accès avec des pare-feu

La mise en œuvre de règles de pare-feu peut aider à contrôler et limiter l'accès à votre serveur SFTP. Sur votre système Ubuntu 22.04, vous pouvez utiliser l'outil ufw (Uncomplicated Firewall, Pare-feu simple) pour créer des règles de pare-feu qui autorisent uniquement le trafic SFTP sur les ports nécessaires. Par exemple :

sudo ufw allow 22/tcp  ## Autoriser le trafic SSH/SFTP
sudo ufw enable

Gérer avec soin les autorisations de fichiers

Assurez-vous que les autorisations de fichiers sur le serveur SFTP sont correctement configurées pour empêcher tout accès ou modification non autorisés. Utilisez la commande chmod pour définir les autorisations correctes pour les fichiers et les répertoires accessibles via le SFTP.

Activer la journalisation et la surveillance

Activez une journalisation complète pour votre serveur SFTP afin de surveiller et d'auditer les activités des utilisateurs. Vous pouvez configurer le démon SSH pour enregistrer les événements liés au SFTP dans les fichiers de journal système, ce qui peut être utile pour la résolution de problèmes et l'analyse de sécurité.

En mettant en œuvre ces meilleures pratiques, vous pouvez améliorer considérablement la sécurité de vos connexions SFTP et protéger vos données sensibles lors des transferts de fichiers.

Résumé

Dans ce tutoriel, vous avez appris à utiliser le SFTP pour transférer des fichiers de manière sécurisée entre votre machine locale et un serveur Linux distant. Vous avez exploré les avantages du SFTP par rapport aux protocoles de transfert de fichiers traditionnels, comme sa sécurité intrinsèque grâce au chiffrement. Vous avez également appris à configurer les méthodes d'authentification SFTP et à mettre en œuvre les meilleures pratiques pour sécuriser les connexions SFTP, garantissant ainsi la confidentialité et l'intégrité de vos données lors du processus de transfert de fichiers. En maîtrisant le SFTP, vous pouvez améliorer la sécurité de vos flux de travail de gestion et de partage de fichiers distants dans un environnement basé sur Linux.