Accesso alla console SSH funzionante ma SFTP no, perché?


17

Sto provando a SFTP con Filezilla ma non è in grado di connettermi al server e penso che ciò sia dovuto alle mie regole del firewall?

Posso SSH assolutamente bene. La porta per SSH è 6128. Qualcuno può dirmi quali modifiche dovrei fare per consentire una connessione FTP su SSH dato che SSH sta già funzionando?

(Ecco le mie regole 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

La risposta da parte Filezilla è: "Disconnected: No supportato metodi di autenticazione disponibili (server ha inviato: publickey)" Ma io sto usando la stessa chiave che funziona per il mio SSH console di login (PuTTy sulle finestre btw)
tentimes

1
SFTP NON è FTP su SSH. Non è necessario 'consentire FTP' ovunque. Il fatto che Filezilla dica "Nessun metodo di autenticazione supportato disponibile" indica che è ben collegato al server e che il problema non ha nulla a che fare con il firewall. Come hai configurato Filezilla per usare la tua chiave pubblica?
Circo Gatto,

Ciao e benvenuto su Unix e Linux. Diventa confuso b / c SFTP condivide un componente del suo nome con il protocollo FTP ma oltre a ciò non hanno nulla a che fare l'uno con l'altro. SSH è un protocollo singolo che viene eseguito sulla porta 22 e offre la possibilità di connettersi in modo sicuro sotto forma di shell interattiva o di trasferire file tramite la stessa connessione. Il server SSH sul lato remoto deve consentire le connessioni SFTP, quindi darei un'occhiata ai registri del server SSH per approfondimenti sul motivo per cui non riesce oltre a verificare che Filezilla abbia una chiave appropriata per connettersi al server in modo sicuro.
slm

Darei anche un'occhiata e verificando che SFTP sia configurato correttamente dal server stesso, sì, puoi usare lo sftpstrumento da riga di comando sul server per connetterti, che è utile per verificare le cose prima di portare Filezilla nel mix. digitalocean.com/community/tutorials/… .
slm

Risposte:


10

Per accedere a sftp da altri host, assicurarsi che quanto segue sia installato e configurato correttamente.

  • Server OpenSSH installati
  • Configurato sshd_config
    • PubkeyAutenticazione sì
    • Sottosistema sftp internal-sftp
  • Aggiunta la chiave pubblica a ~ / .ssh / authorized_keys

  • Avviare il server SSH con la porta 22 / TCP aperta # /etc/init.d/sshd start

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

Infine, prova $ sftp <login>@<hostname>


Un'altra buona idea è quella di verificare la presenza di sessioni interattive usando [[$ -! = I ]] && return.
OMG-1

1
Subsystem sftp internal-sftpfatto per me. L'impostazione /usr/libexec/openssh/sftp-serverpredefinita era che non esisteva nemmeno
quietContest il

L'aggiunta Subsystem sftp internal-sftpa sshd_config ha funzionato anche per me senza altre modifiche su Centos.
Corgalore,

2

Nel mio caso, l'utente aveva zshin cima al suo file .bashrc, in modo che potesse cadere nella shell zsh invece che bash.

bash era la sua shell predefinita. La rimozione di questo ha risolto il problema. Ho quindi chsh user -s /bin/zshper l'utente di mantenere zsh come shell predefinita.


Stesso problema con altre shell (come fish).
Paul,

1

Hai qualche testo sulla console (ad esempio istruzioni echo) in uno dei tuoi file .profile come .bashrc? Questo può interferire con la connettività sftp. Vedi la mia risposta a una domanda simile su serverfault


Stai attento con questo davvero. Se si avvia automaticamente un'altra console come fishquesta, si verificheranno problemi simili.
Paul,

1

Anche il tuo software antivirus può causare questo. L'abbiamo affrontato di recente. sshtramite PuTTY funzionava bene, ma WinSCP non era in grado di connettersi. Ha iniziato a funzionare dopo aver configurato un'eccezione nell'Anti-Virus.


0

Se stai usando filezilla, la seguente risposta mi ha aiutato:

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

In Filezilla, scegli dal menu Modifica-> Impostazioni, nel pannello di sinistra espandi a Connessione-> SFTP. Sul lato destro assicurati di avere il file della chiave privata corretto o aggiungi se manca la voce corretta.

Usando la console web DO, accedi come root e fai 'tail -f /var/log/auth.log'. Quindi prova ad accedere con Filezilla e annota tutti i messaggi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.