Bảng điều khiển SSH đăng nhập hoạt động nhưng SFTP thì không, tại sao?


17

Tôi đang cố gắng SFTP với Filezilla nhưng nó không thể kết nối với máy chủ và tôi nghĩ điều này là do quy tắc tường lửa của tôi?

Tôi có thể SSH hoàn toàn tốt. Cổng cho SSH là 6128. Có ai có thể cho tôi biết những thay đổi tôi sẽ phải thực hiện để cho phép kết nối FTP qua SSH khi SSH đã hoạt động không?

(Dưới đây là quy tắc IPtables của tôi)

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

Câu trả lời từ Filezilla là: "ngắt kết nối: Không hỗ trợ phương pháp xác thực có sẵn (server gửi: PublicKey)" Nhưng tôi đang sử dụng chìa khóa tương tự mà các công trình cho SSH console đăng nhập của tôi (PuTTY trên cửa sổ btw)
tentimes

1
SFTP KHÔNG phải là FTP qua SSH. Bạn không phải 'cho phép FTP' ở bất cứ đâu. Thực tế là Filezilla nói rằng "Không có phương thức xác thực được hỗ trợ nào" cho thấy nó được kết nối với máy chủ tốt và vấn đề không liên quan đến tường lửa của bạn. Làm thế nào bạn thiết lập Filezilla để sử dụng khóa chung của bạn?
Xiếc mèo

Xin chào và chào mừng đến với Unix & Linux. Nó gây nhầm lẫn b / c SFTP chia sẻ một thành phần tên của nó với giao thức FTP nhưng ngoài ra chúng không liên quan gì đến nhau. SSH là một giao thức duy nhất chạy trên cổng 22 và nó cung cấp khả năng kết nối an toàn dưới dạng vỏ tương tác hoặc để truyền tệp qua cùng một kết nối. Máy chủ SSH ở phía xa cần cho phép kết nối SFTP, vì vậy tôi sẽ xem xét nhật ký của máy chủ SSH để biết lý do tại sao nó không thành công ngoài việc đảm bảo Filezilla có khóa thích hợp để kết nối với máy chủ một cách an toàn.
slm

Tôi cũng sẽ xem và xác minh SFTP được thiết lập đúng từ chính máy chủ, vâng, bạn có thể sử dụng sftpcông cụ dòng lệnh trên máy chủ để kết nối, rất hữu ích trong việc xác minh mọi thứ trước khi đưa Filezilla vào hỗn hợp. digitalocean.com/community/tutorials/ trên .
slm

Câu trả lời:


10

Để truy cập sftp của bạn từ các máy chủ khác, vui lòng đảm bảo rằng phần sau được cài đặt và cấu hình đúng.

  • Đã cài đặt máy chủ OpenSSH
  • Cấu hình sshd_config
    • PubkeyAuthentication có
    • Hệ thống con sftp nội bộ-sftp
  • Đã thêm khóa công khai của bạn vào ~ / .ssh / ủy quyền

  • Khởi động máy chủ ssh với cổng 22 / TCP mở # /etc/init.d/sshd start

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

Cuối cùng, kiểm tra $ sftp <login>@<hostname>


Một ý tưởng hay khác là kiểm tra phiên tương tác bằng cách sử dụng [[$ -! = I ]] && return.
OMG-1

1
Subsystem sftp internal-sftpđã làm điều đó cho tôi. Nó được đặt thành /usr/libexec/openssh/sftp-servermặc định, thậm chí còn không tồn tại
quietContest

Thêm Subsystem sftp internal-sftpvào sshd_config cũng hoạt động với tôi mà không có thay đổi nào khác trên Centos.
Corgalore

2

Trong trường hợp của tôi, người dùng đã zshở đầu tệp .bashrc của anh ta, để anh ta có thể thả vào vỏ zsh thay vì bash.

bash là vỏ mặc định của mình. Loại bỏ điều này đã giải quyết vấn đề. Tôi sau đó chsh user -s /bin/zshcho người dùng giữ zsh làm vỏ mặc định của mình.


Vấn đề tương tự với các shell khác (chẳng hạn như fish).
Paul

1

Bạn có bất kỳ văn bản nào đi đến bàn điều khiển (ví dụ: câu lệnh echo) trong bất kỳ tệp .profile nào của bạn như .bashrckhông? Điều này có thể gây rối với kết nối sftp. Xem câu trả lời của tôi cho một câu hỏi tương tự trên serverfault


Hãy cẩn thận với điều này thực sự. Nếu bạn tự động khởi chạy giao diện điều khiển khác như fishđiều này sẽ dẫn đến các vấn đề tương tự.
Paul

1

Phần mềm chống vi-rút của bạn cũng có thể gây ra điều này. Chúng tôi đã đối mặt với nó gần đây. sshthông qua PuTTY đã hoạt động tốt, nhưng WinSCP không thể kết nối. Bắt đầu hoạt động khi một ngoại lệ được cấu hình trong Anti-Virus.


0

Nếu bạn đang sử dụng filezilla, câu trả lời sau đây đã giúp tôi:

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

Trong Filezilla, chọn trên menu Chỉnh sửa-> Cài đặt, Trên bảng điều khiển bên trái mở rộng sang Kết nối-> SFTP. Ở bên phải, đảm bảo bạn có tệp khóa riêng đúng hoặc thêm nếu thiếu mục nhập chính xác.

Sử dụng bảng điều khiển web DO, đăng nhập bằng root và thực hiện 'tail -f /var/log/auth.log'. Sau đó thử đăng nhập bằng Filezilla và ghi chú bất kỳ tin nhắn nào.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.