O login do console SSH está funcionando, mas o SFTP não, por quê?


17

Estou tentando fazer o SFTP com o Filezilla, mas ele não consegue se conectar ao servidor e acho que isso se deve às minhas regras de firewall?

Eu posso SSH absolutamente bem. A porta para SSH é 6128. Alguém pode me dizer quais alterações eu precisaria fazer para permitir uma conexão FTP por SSH, já que o SSH já está funcionando?

(Aqui estão as minhas regras do 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

A resposta do Filezilla é: "Disconnected: Não suportado métodos de autenticação disponíveis (servidor enviou: publickey)" Mas eu estou usando a mesma chave que funciona para minha SSH login de console (PuTTy em janelas btw)
— tentimes

1
SFTP NÃO é FTP sobre SSH. Você não precisa 'permitir FTP' em qualquer lugar. O fato de o Filezilla dizer "Nenhum método de autenticação compatível disponível" indica que ele está conectado corretamente ao servidor e o problema não tem nada a ver com o firewall. Como você configurou o Filezilla para usar sua chave pública?
— Circus Cat

Olá e bem-vindo ao Unix e Linux. Fica confuso porque o SFTP compartilha um componente de seu nome com o protocolo FTP, mas além disso eles não têm nada a ver um com o outro. O SSH é um protocolo único que é executado na porta 22 e fornece a capacidade de conectar-se com segurança na forma de um shell interativo ou transferir arquivos pela mesma conexão. O servidor SSH no lado remoto precisa permitir conexões SFTP, então eu procuraria nos logs do servidor SSH para obter informações sobre por que está falhando, além de garantir que o Filezilla tenha uma chave apropriada para conectar-se ao servidor com segurança.
— Slm

Eu também daria uma olhada e verificaria se o SFTP está configurado corretamente no servidor, sim, você pode usar a sftpferramenta de linha de comando no servidor para conectar-se, o que é útil para verificar as coisas antes de colocar o Filezilla na mistura. digitalocean.com/community/tutorials/… .
— slm

Respostas:


10

Para acessar seu sftp de outros hosts, verifique se o seguinte está instalado e configurado corretamente.

  • Servidores OpenSSH instalados
  • Sshd_config configurado
    • PubkeyAuthentication yes
    • Subsistema sftp internal-sftp
  • Sua chave pública foi adicionada a ~ / .ssh / allowed_keys

  • Inicie o servidor ssh com a porta 22 / TCP aberta # /etc/init.d/sshd start

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

Finalmente, teste $ sftp <login>@<hostname>


Outra boa idéia é verificar a sessão interativa usando [[$ -! = I ]] && return.
— OMG-1

1
Subsystem sftp internal-sftpfez isso por mim. Foi definido como /usr/libexec/openssh/sftp-serverpor padrão, que nem sequer existia
— quietContest

Adicionar Subsystem sftp internal-sftpao sshd_config também funcionou para mim sem outras alterações no Centos.
— Corgalore 25/10/19

2

No meu caso, o usuário estava zshno topo de seu arquivo .bashrc, para que ele pudesse cair no shell zsh em vez de no bash.

bash era sua concha padrão. A remoção disso resolveu o problema. Eu, então, chsh user -s /bin/zshpara o usuário manter o zsh como seu shell padrão.


Mesmo problema com outras conchas (como fish).
— Paul

1

Você tem algum texto acessando o console (por exemplo, instruções echo) em qualquer um dos seus arquivos .profile, como .bashrc? Isso pode prejudicar a conectividade sftp. Veja minha resposta para uma pergunta semelhante em serverfault


Tenha cuidado com isso de fato. Se você iniciar automaticamente outro console como fishesse, isso resultará em problemas semelhantes.
— Paul

1

Seu software antivírus também pode causar isso. Enfrentamos isso recentemente. sshvia PuTTY estava funcionando bem, mas o WinSCP não conseguiu se conectar. Começou a trabalhar depois que uma exceção foi configurada no Antivírus.


0

Se você estiver usando o filezilla, a seguinte resposta me ajudou:

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

No Filezilla, escolha no menu Editar-> Configurações, no painel esquerdo, expanda para Conexão-> SFTP. No lado direito, verifique se você possui o arquivo de chave privada correto ou adicione se estiver faltando a entrada correta.

Usando o console da web DO, efetue login como root e faça 'tail -f /var/log/auth.log'. Em seguida, tente fazer login com o Filezilla e anote as mensagens.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.