La connexion à la console SSH fonctionne mais SFTP ne fonctionne pas, pourquoi?

17

J'essaie de SFTP avec Filezilla mais il n'est pas en mesure de se connecter au serveur et je pense que cela est dû à mes règles de pare-feu?

Je peux SSH absolument bien. Le port pour SSH est 6128. Quelqu'un peut-il me dire quelles modifications je devrais apporter pour autoriser une connexion FTP sur SSH étant donné que SSH fonctionne déjà?

(Voici mes règles IPtables)

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             udp dpt:9987
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:10011
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:30033
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:6128
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere
dix fois
la source
La réponse de Filezilla est: "Déconnecté: Aucune méthode d'authentification prise en charge disponible (serveur envoyé: publickey)" Mais j'utilise la même clé qui fonctionne pour ma connexion à la console SSH (PuTTy sur windows btw)
heures
2
SFTP n'est PAS FTP sur SSH. Vous n'avez pas à «autoriser FTP» n'importe où. Le fait que Filezilla indique «Aucune méthode d'authentification prise en charge disponible» indique qu'il est bien connecté au serveur et que le problème n'a rien à voir avec votre pare-feu. Comment avez-vous configuré Filezilla pour utiliser votre clé publique?
Circus Cat
Salut et bienvenue sur Unix et Linux. Cela devient déroutant b / c SFTP partage un composant de son nom avec le protocole FTP mais au-delà, ils n'ont rien à voir les uns avec les autres. SSH est un protocole unique qui s'exécute sur le port 22 et il offre la possibilité de se connecter en toute sécurité sous la forme d'un shell interactif ou de transférer des fichiers via la même connexion. Le serveur SSH du côté distant doit autoriser les connexions SFTP, donc je chercherais dans les journaux du serveur SSH pour savoir pourquoi il échoue en plus de s'assurer que Filezilla a une clé appropriée pour se connecter au serveur en toute sécurité.
slm
Je voudrais également jeter un coup d'œil et vérifier que SFTP est correctement configuré à partir du serveur lui-même, oui, vous pouvez utiliser l' sftpoutil de ligne de commande sur le serveur pour vous connecter, ce qui est utile pour vérifier les choses avant d'intégrer Filezilla dans le mix. digitalocean.com/community/tutorials/… .
slm

Réponses:

10

Pour accéder à votre sftp à partir d'autres hôtes, veuillez vous assurer que ce qui suit est installé et configuré correctement.

  • Serveurs OpenSSH installés
  • Configuré sshd_config
    • PubkeyAuthentication oui
    • Sous-système sftp internal-sftp
  • Ajout de votre clé publique à ~ / .ssh / authorized_keys

  • Démarrez le serveur ssh avec le port 22 / TCP ouvert # /etc/init.d/sshd start

  • # iptables -I INPUT -j ACCEPT -p tcp --dport 22

Enfin, testez $ sftp <login>@<hostname>

OMG-1
la source
Une autre bonne idée est de vérifier la session interactive en utilisant [[$ -! = I ]] && return.
OMG-1
1
Subsystem sftp internal-sftpl'a fait pour moi. Il était réglé /usr/libexec/openssh/sftp-serverpar défaut, qui n'existait même pas
quietContest
L'ajout Subsystem sftp internal-sftpà sshd_config a également fonctionné pour moi sans autres changements sur Centos.
Corgalore
2

Dans mon cas, l'utilisateur avait zshen haut de son fichier .bashrc, afin de pouvoir le déposer dans le shell zsh au lieu de bash.

bash était son shell par défaut. La suppression de ce problème a résolu le problème. J'ai ensuite chsh user -s /bin/zshpour l'utilisateur de conserver zsh comme shell par défaut.

Shubham Chaudhary
la source
Même problème avec d'autres coquilles (comme fish).
Paul
1

Avez-vous du texte allant à la console (par exemple, des instructions d'écho) dans l'un de vos fichiers .profile tels que .bashrc? Cela peut perturber la connectivité sftp. Voir ma réponse à une question similaire sur serverfault

Paulus
la source
Soyez prudent avec cela. Si vous lancez automatiquement une autre console telle que fishcelle-ci, des problèmes similaires se produiront.
Paul
1

Votre logiciel antivirus peut également provoquer ce problème. Nous y avons fait face récemment. sshvia PuTTY fonctionnait bien, mais WinSCP n'a pas pu se connecter. A commencé à fonctionner une fois qu'une exception a été configurée dans l'Anti-Virus.

Sibil
la source
0

Si vous utilisez filezilla, la réponse suivante m'a aidé:

https://www.digitalocean.com/community/questions/able-to-access-via-ssh-but-not-filezilla

Dans Filezilla, choisissez dans le menu Edition-> Paramètres, dans le panneau de gauche, développez jusqu'à Connexion-> SFTP. Sur le côté droit, assurez-vous que vous disposez du fichier de clé privée correct, ou ajoutez s'il manque l'entrée correcte.

À l'aide de la console Web DO, connectez-vous en tant que root et faites «tail -f /var/log/auth.log». Essayez ensuite de vous connecter avec Filezilla et notez tous les messages.

Ulad Kasach
la source
0

Ma réponse à une question similaire sur serverfault :

Je viens de rencontrer ce problème (spécifiquement pour sftp mais pas ssh, où je pouvais me connecter sans problème) et aucune des solutions ici ne fonctionnait pour moi. Dans mon cas, cela était dû au fait qu'il y avait trop de clés ssh (IdentityFile) dans ~/.ssh/. Il semble que lorsque vous n'avez pas d'entrée d'hôte ~/.ssh/configpour l'hôte auquel vous essayez de vous connecter avec la bonne clé, il envoie simplement toutes vos clés une par une. J'avais plus de 6 clés, et bien sûr, la valeur par défaut MaxAuthTriesest 6 (au moins dans Ubuntu).

La solution était d'éditer le serveur /etc/ssh/sshd_configet d'augmenter MaxAuthTries. J'ai mis le mien à 10.

#MaxAuthTries 6
MaxAuthTries 10

(Ou bien sûr, ajoutez simplement une entrée d'hôte avec la bonne clé - dans ce cas particulier, j'essaie de me connecter sans utiliser de clé).

fou
la source