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.