Comment résoudre les problèmes de connexion à mon instance Linux EC2 à l'aide d'une connexion SFTP ?

Date de la dernière mise à jour : 09/12/2020

Je ne peux pas me connecter à mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) à l'aide d'une connexion SFTP (Secure File Transfer Protocol). Ou, je reçois l'erreur « remote readdir Permission denied ». Comment puis-je résoudre ce problème ?

Brève description

Il existe plusieurs raisons pour lesquelles la connexion à votre instance EC2 via une connexion SFTP peut échouer. Voici les étapes de dépannage pour les problèmes de connexion courants :

  • Vérifiez que votre instance répond aux conditions préalables de connexion SSH.
  • Connectez-vous à l'instance avec une messagerie détaillée pour identifier l'erreur.
  • Vérifiez les journaux d'authentification et de système à la recherche d'erreurs.
  • Vérifiez que le sous-système pour SFTP est configuré dans le fichier de configuration SSHD.
  • Corrigez l'erreur Remote readdir Permission denied.

Solution

Vérifiez que votre instance répond aux conditions préalables de connexion SSH

SFTP fonctionne sur SSH. Vérifiez que l'instance répond à toutes les conditions préalables de connexion SSH. Pour obtenir la liste des conditions préalables, reportez-vous à Connexion à votre instance Linux à l'aide de SSH.

Connectez-vous à l'instance avec une messagerie détaillée pour identifier l'erreur

Les messages d'erreur de connexion suivants sont courants :

  • Connection timed out ou Connection refused
  • Permission denied ou Authentication failed
  • Server refused our key

Pour des informations sur la connexion à votre instance avec la messagerie détaillée et sur la manière de résoudre ces problèmes et d'autres erreurs liées à SSH, consultez Comment résoudre les problèmes de connexion à mon instance Linux Amazon EC2 à l'aide de SSH ?

Vérifiez les journaux d'authentification et de système à la recherche d'erreurs

Journal d'authentification RHEL et Fedora :

$ sudo less /var/log/secure

Journaux système génériques RHEL et Fedora :

$ sudo less /var/log/messages

Journal 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

Vérifiez 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 d'objet partagé pour sftp-server existe dans le répertoire respectif. Si la connexion SFTP se ferme en raison d'un sous-système SFTP manquant, le journal peut indiquer l'erreur demande de sous-système a échoué 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 plus d'informations, consultez la section Sous-système de sshd_config sur la page de manuel Linux.

Résoudre l'erreur remote readdir Permission denied

L'erreur remote readdir Permission denied indique que l'utilisateur qui tente la connexion SFTP ne dispose pas des autorisations correctes. L'utilisateur doit au minimum disposer de l'autorisation de lecture et d'exécution pour basculer vers un répertoire cible.

Utilisez la commande suivante pour vérifier que l'utilisateur est autorisé à accéder au répertoire cible :

ls -ldZ /directory

Utilisez la commande suivante pour vérifier les autorisations de liste de contrôle d'accès (ACL) limitant l'accès utilisateur :

getfacl /directory

Utilisez la commande suivante pour vérifier que SELinux est activé :

getenforce

Si SELinux est activé, vérifiez /var/log/audit/audit.log ou /var/log/audit.log pour les erreurs d'autorisation refusées en fonction du contexte SELinux.</p


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?