El inicio de sesión de la consola SSH funciona pero SFTP no, ¿por qué?

17

Estoy intentando SFTP con Filezilla pero no puede conectarse al servidor y creo que esto se debe a las reglas de mi firewall.

Puedo SSH absolutamente bien. El puerto para SSH es 6128. ¿Alguien puede decirme qué cambios tendría que hacer para permitir una conexión FTP a través de SSH dado que SSH ya está funcionando?

(Aquí están mis reglas de 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
diez veces
fuente
La respuesta de Filezilla es: "Desconectado: no hay métodos de autenticación compatibles disponibles (servidor enviado: clave pública)" Pero estoy usando la misma clave que funciona para mi inicio de sesión de consola SSH (PuTTy en Windows por cierto)
carpa
1
SFTP NO es FTP sobre SSH. No tiene que 'permitir FTP' en ningún lado. El hecho de que Filezilla dice "No hay métodos de autenticación compatibles disponibles" indica que está bien conectado al servidor y que el problema no tiene nada que ver con su firewall. ¿Cómo configuró Filezilla para usar su clave pública?
Circus Cat
Hola y bienvenidos a Unix y Linux. Se vuelve confuso b / c SFTP comparte un componente de su nombre con el protocolo FTP, pero más allá de eso, no tienen nada que ver entre sí. SSH es un protocolo único que se ejecuta en el puerto 22 y proporciona las capacidades para conectarse de forma segura en forma de shell interactivo o para transferir archivos a través de la misma conexión. El servidor SSH en el lado remoto necesita permitir conexiones SFTP, por lo que buscaría en los registros del servidor SSH información sobre por qué está fallando, además de asegurarse de que Filezilla tenga una clave adecuada para conectarse al servidor de forma segura.
slm
También echaría un vistazo y verificaría que SFTP esté configurado correctamente desde el servidor mismo, sí, puede usar la sftpherramienta de línea de comandos en el servidor para conectarse, lo que es útil para verificar las cosas antes de incorporar Filezilla a la mezcla. digitalocean.com/community/tutorials/… .
slm

Respuestas:

10

Para acceder a su sftp desde otros hosts, asegúrese de que lo siguiente esté instalado y configurado correctamente.

  • Servidores OpenSSH instalados
  • Configurado sshd_config
    • Autenticación Pubkey sí
    • Subsistema sftp internal-sftp
  • Agregó su clave pública a ~ / .ssh / Authorizedkeke

  • Inicie el servidor ssh con el puerto 22 / TCP abierto # /etc/init.d/sshd start

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

Finalmente prueba $ sftp <login>@<hostname>

OMG-1
fuente
Otra buena idea es verificar la sesión interactiva usando [[$ -! = I ]] && return.
OMG-1
1
Subsystem sftp internal-sftpLo hice por mí. Se configuró /usr/libexec/openssh/sftp-serverde manera predeterminada, que ni siquiera existía
quietContest
Agregar Subsystem sftp internal-sftpa sshd_config también funcionó para mí sin otros cambios en Centos.
Corgalore
2

En mi caso, el usuario tenía zsh en la parte superior de su archivo .bashrc, para que pudiera caer en el shell zsh en lugar de bash.

bash era su caparazón predeterminado. Eliminar esto resolvió el problema. Entonces, chsh user -s /bin/zshpara que el usuario conserve zsh como su shell predeterminado.

Shubham Chaudhary
fuente
Mismo problema con otras conchas (como fish).
Paul
1

¿Tiene algún texto que vaya a la consola (por ejemplo, declaraciones de eco) en alguno de sus archivos .profile como .bashrc? Esto puede interferir con la conectividad sftp. Vea mi respuesta a una pregunta similar en serverfault

Paulus
fuente
Tenga cuidado con esto de hecho. Si inicia automáticamente otra consola como fishesta, se producirán problemas similares.
Paul
1

Su software antivirus también puede causar esto. Lo enfrentamos recientemente. sshvia PuTTY funcionaba bien, pero WinSCP no pudo conectarse. Comenzó a funcionar una vez que se configuró una excepción en el antivirus.

Sibil
fuente
0

Si está utilizando filezilla, la siguiente respuesta me ayudó:

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

En Filezilla, elija en el menú Editar-> Configuración, en el panel izquierdo, expanda a Conexión-> SFTP. En el lado derecho, asegúrese de tener el archivo de clave privada correcto, o agregue si falta la entrada correcta.

Con la consola web de DO, inicie sesión como root y haga 'tail -f /var/log/auth.log'. Luego intente iniciar sesión con Filezilla y anote cualquier mensaje.

Ulad Kasach
fuente