Login konsol SSH berfungsi tetapi SFTP tidak, mengapa?

17

Saya mencoba SFTP dengan Filezilla tetapi tidak dapat terhubung ke server dan saya pikir ini karena aturan firewall saya?

Saya bisa SSH baik-baik saja. Port untuk SSH adalah 6128. Adakah yang bisa memberi tahu saya perubahan apa yang harus saya lakukan untuk memungkinkan koneksi FTP melalui SSH mengingat SSH sudah bekerja?

(Ini aturan IPtables saya)

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
sepuluh kali
sumber
Tanggapan dari Filezilla adalah: "Terputus: Tidak ada metode otentikasi yang didukung tersedia (server dikirim: publickey)" Tapi saya menggunakan kunci yang sama yang berfungsi untuk login konsol SSH saya (Putty pada windows btw)
tentimes
1
SFTP BUKAN FTP melalui SSH. Anda tidak perlu 'mengizinkan FTP' di mana pun. Fakta bahwa Filezilla mengatakan "Tidak ada metode otentikasi yang didukung" menunjukkan itu terhubung ke server baik-baik saja, dan masalahnya tidak ada hubungannya dengan firewall Anda. Bagaimana Anda mengatur Filezilla untuk menggunakan kunci publik Anda?
Circus Cat
Hai dan selamat datang di Unix & Linux. Itu membingungkan b / c SFTP berbagi komponen namanya dengan protokol FTP tetapi di luar itu mereka tidak ada hubungannya dengan satu sama lain. SSH adalah protokol tunggal yang berjalan pada port 22 dan menyediakan kemampuan untuk terhubung dengan aman dalam bentuk shell interaktif atau untuk mentransfer file melalui koneksi yang sama. Server SSH di sisi jarak jauh perlu memungkinkan untuk koneksi SFTP, jadi saya akan melihat ke dalam log server SSH untuk mengetahui mengapa hal itu gagal selain memastikan bahwa Filezilla memiliki kunci yang sesuai untuk terhubung ke server dengan aman.
slm
Saya juga akan melihat dan memverifikasi SFTP sudah diatur dengan benar dari server itu sendiri, ya Anda dapat menggunakan sftpalat baris perintah pada server untuk terhubung, yang sangat membantu dalam memverifikasi hal-hal sebelum membawa Filezilla ke dalam campuran. digitalocean.com/community/tutorials/… .
slm

Jawaban:

10

Untuk mengakses sftp Anda dari host lain, pastikan yang berikut ini diinstal dan dikonfigurasi dengan benar.

  • Server OpenSSH yang diinstal
  • Sshd_config dikonfigurasi
    • PubkeyAuthentication ya
    • Subsistem sftp internal-sftp
  • Menambahkan kunci publik Anda ke ~ / .ssh / otor_keys

  • Mulai server ssh dengan port 22 / TCP terbuka # /etc/init.d/sshd start

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

Akhirnya, tes $ sftp <login>@<hostname>

OMG-1
sumber
Ide bagus lainnya adalah memeriksa sesi interaktif menggunakan [[$ -! = I ]] && return.
OMG-1
1
Subsystem sftp internal-sftpmelakukannya untukku. Itu diatur /usr/libexec/openssh/sftp-serversecara default, yang bahkan tidak ada
quietContest
Menambahkan Subsystem sftp internal-sftpke sshd_config juga bekerja untuk saya tanpa perubahan lain pada Centos.
Corgalore
2

Dalam kasus saya, pengguna memiliki zshdi bagian atas file .bashrc-nya, sehingga ia bisa jatuh ke shell zsh bukan bash.

bash adalah shell default-nya. Menghapus ini memecahkan masalah. Saya kemudian chsh user -s /bin/zshbagi pengguna untuk mempertahankan zsh sebagai shell default-nya.

Shubham Chaudhary
sumber
Masalah yang sama dengan shell lainnya (seperti fish).
Paul
1

Apakah Anda memiliki teks yang masuk ke konsol (mis. Pernyataan gema) di file .profile Anda seperti .bashrc? Ini dapat mengacaukan konektivitas sftp. Lihat jawaban saya untuk pertanyaan serupa di serverfault

Paulus
sumber
Berhati-hatilah dengan ini. Jika Anda meluncurkan konsol lain secara otomatis seperti fishini akan menghasilkan masalah serupa.
Paul
1

Perangkat lunak anti-virus Anda juga dapat menyebabkan ini. Kami menghadapinya baru-baru ini. sshvia PutTY bekerja dengan baik, tetapi WinSCP tidak dapat terhubung. Mulai berfungsi setelah pengecualian dikonfigurasi di Anti-Virus.

Sibil
sumber
0

Jika Anda menggunakan filezilla, jawaban berikut membantu saya:

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

Di Filezilla, pilih pada menu Edit-> Pengaturan, Pada panel kiri memperluas ke Connection-> SFTP. Di sisi kanan pastikan Anda memiliki file kunci pribadi yang benar, atau tambahkan jika tidak ada entri yang benar.

Menggunakan konsol web DO, login sebagai root dan lakukan 'tail -f /var/log/auth.log'. Kemudian cobalah masuk dengan Filezilla dan catat pesan apa pun.

Ulad Kasach
sumber