Comment puis-je résoudre les problèmes de connexion à mon instance Linux EC2 via une connexion SFTP ?

Lecture de 4 minute(s)
0

Je ne parviens pas à me connecter à mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) via une connexion SFTP (Secure File Transfer Protocol). Ou bien, je reçois le message d'erreur « Autorisation Readdir à distance refusée. »

Résolution

Il existe plusieurs raisons pour lesquelles la connexion à votre instance EC2 via une connexion SFTP peut échouer. Voici les étapes à suivre pour résoudre vos problèmes de connexion :

Vérifier que votre instance répond aux exigences de connexion SSH

SFTP repose sur le protocole SSH. Vous devez donc vérifier que l'instance répond à toutes les exigences de connexion SSH. Pour obtenir la liste des prérequis, reportez-vous à Connexion à votre instance Linux depuis Linux ou macOS à l'aide de SSH.

Se connecter à l'instance en utilisant la messagerie détaillée pour identifier l'erreur

Il est possible que vous receviez l'un des message d'erreurs de connexion courantes suivantes :

  • Délai de connexion expiré ou Connexion refusée
  • Autorisation refusée ou Échec de l'authentification
  • Clé refusée par le serveur

Pour en savoir plus sur la messagerie détaillée et sur la résolution des erreurs SSH, reportez-vous à Comment puis-je résoudre les problèmes de connexion à mon instance Linux Amazon EC2 via SSH ?

Si vous avez activé EC2 Serial Console pour Linux, vous pouvez l'utiliser pour résoudre les problèmes liés aux types d'instances Nitro pris en charge. La console série permet de résoudre les problèmes de démarrage, de configuration réseau et de configuration SSH. Elle est capable de se connecter à votre instance sans nécessiter une connexion réseau fonctionnelle. Vous pouvez accéder à la console série à partir de la console Amazon EC2 ou de l'interface de la ligne de commande AWS (AWS CLI).

Vous devez accorder l'accès à la console au niveau du compte avant de pouvoir l'utiliser. Créez ensuite des politiques Gestion des identités et des accès AWS (AWS IAM) qui accordent l'accès à vos utilisateurs IAM. Chaque instance qui utilise la console série doit inclure au moins un utilisateur avec mot de passe. Pour en savoir plus, reportez-vous à Configurer l'accès à EC2 Serial Console.

Remarque : si des erreurs surviennent lors de l'exécution des commandes AWS CLI, vérifiez que vous utilisez bien la version la plus récente de l'interface.

Chercher des erreurs dans les journaux d'authentification et les journaux système

Journaux d'authentification Amazon Linux, Amazon Linux2, RHEL et Fedora

$ sudo less /var/log/secure

Journaux système génériques Amazon Linux, Amazon Linux2, RHEL et Fedora

$ sudo less /var/log/messages

Journaux d'authentification Debian et Ubuntu

$ sudo less /var/log/auth.log

Journaux système génériques Debian et Ubuntu

$ sudo less /var/log/syslog

Amazon Linux 2023

Vérifiez les journaux SSHD :

journalctl -u sshd

Vérifiez les journaux système génériques :

journalctl -a

Vérifier que le sous-système pour SFTP est configuré dans le fichier de configuration SSHD

Vérifiez que le sous-système pour SFTP est configuré dans le fichier de configuration SSHD et que le fichier objet partagé pour sftp-server existe dans le répertoire correspondant. Si la connexion SFTP se ferme en raison de l'absence d'un sous-système SFTP, le journal peut comporter une erreur indiquant l'échec d'une demande du sous-système sur le canal 0.

Distributions basées sur RHEL et Fedora

$ sudo grep Subsystem /etc/ssh/sshd_config
Subsystem sftp    /usr/libexec/openssh/sftp-server
$ sudo ls -l /usr/libexec/openssh/sftp-server
-rwxr-xr-x. 1 root root 100784 Jun 26  2019 /usr/libexec/openssh/sftp-server

Distributions basées sur Debian et Ubuntu

$ sudo grep Subsystem /etc/ssh/sshd_config
Subsystem    sftp    /usr/lib/openssh/sftp-server
$ sudo ls -l /usr/lib/openssh/sftp-server
-rwxr-xr-x 1 root root 105608 Mar  4  2019 /usr/lib/openssh/sftp-server

Pour en savoir plus, reportez-vous à Sous-système dans sshd_config sur la page du manuel de Linux.

Corriger une erreur d'autorisation refusée dans Readdir à distance

L'erreur Autorisation Readdir à distance refusée indique que l'utilisateur ne dispose pas des autorisations appropriées pour se connecter au SFTP. L'utilisateur doit avoir au moins l'autorisation de lecture et d'exécution pour passer à un répertoire cible.

Vérifiez que l'utilisateur est autorisé à accéder au répertoire cible :

ls -ldZ /directory

Vérifiez les autorisations de la liste de contrôle d'accès (ACL) qui limitent l'accès des utilisateurs :

getfacl /directory

Vérifiez que vous avez bien activé SELinux :

getenforce

Si SELinux est activé, consultez le fichier /var/log/audit/audit.log ou /var/log/audit.log pour détecter les erreurs de refus d'autorisation en fonction du contexte SELinux.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an