SSH 콘솔 로그인이 작동하지만 SFTP가 작동하지 않는 이유는 무엇입니까?


17

Filezilla로 SFTP를 시도하고 있지만 서버에 연결할 수 없으며 이것이 방화벽 규칙 때문이라고 생각합니까?

나는 SSH를 절대적으로 잘 할 수 있습니다. SSH의 포트는 6128입니다. SSH가 이미 작동중인 경우 SSH를 통한 FTP 연결을 허용하기 위해 어떤 변경을해야하는지 누구에게 말해 줄 수 있습니까?

(내 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

"(서버 전송 : 공개 키) 없음 사용할 인증 방법을 지원 끊김"에서는 Filezilla의 응답은하지만 내 SSH 콘솔 로그인에 대한 작업 (윈도우에 퍼티가 BTW)하는 것과 같은 키 사용하고
tentimes

2
SFTP는 SSH를 통한 FTP 가 아닙니다 . 어디에서나 'FTP를 허용'할 필요는 없습니다. Filezilla에 "사용 가능한 지원되는 인증 방법이 없음"이 표시되어 있다는 것은 서버에 제대로 연결되었음을 나타내며 문제는 방화벽과 관련이 없습니다. 공개 키를 사용하기 위해 Filezilla를 어떻게 설정 했습니까?
서커스 고양이

유닉스와 리눅스에 오신 것을 환영합니다. b / c SFTP는 이름의 구성 요소를 프로토콜 FTP와 공유하지만 그 이상은 서로 관련이 없습니다. SSH는 포트 22에서 실행되는 단일 프로토콜이며 대화식 셸 형태로 안전하게 연결하거나 동일한 연결을 통해 파일을 전송하는 기능을 제공합니다. 원격 측의 SSH 서버는 SFTP 연결을 허용해야하므로 SSH 서버의 로그에서 Filezilla가 서버에 안전하게 연결할 수있는 적절한 키를 가지고 있는지 확인하는 것 외에 실패한 이유에 대한 통찰력을 살펴볼 것입니다.
slm

SFTP가 서버 자체에서 올바르게 설정되었는지 확인하고 서버에서 명령 줄 sftp도구를 사용하여 연결할 수 있습니다 .Filezilla를 믹스로 가져 오기 전에 확인하는 데 도움이됩니다. digitalocean.com/community/tutorials/... .
slm

답변:


10

다른 호스트에서 sftp에 액세스하려면 다음이 올바르게 설치 및 구성되어 있는지 확인하십시오.

  • 설치된 OpenSSH 서버
  • 구성된 sshd_config
    • Pubkey 인증 예
    • 서브 시스템 sftp internal-sftp
  • ~ / .ssh / authorized_keys에 공개 키를 추가했습니다

  • 포트 22 / TCP가 열린 상태에서 ssh 서버를 시작하십시오. # /etc/init.d/sshd start

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

마지막으로 테스트 $ sftp <login>@<hostname>


또 다른 좋은 아이디어는 [[$-! = i ]] && return을 사용하여 대화식 세션을 확인하는 것입니다 .
OMG-1

1
Subsystem sftp internal-sftp나를 위해 그것을했다. 그것은 /usr/libexec/openssh/sftp-server존재하지도 않는 것으로 기본 설정되었습니다
quietContest

Subsystem sftp internal-sftpsshd_config에 추가하면 Centos에서 다른 변경 사항이 없었습니다.
Corgalore

2

필자의 경우 사용자는 zsh.bashrc 파일의 맨 위에 있었 으므로 bash 대신 zsh 셸에 넣을 수 있습니다.

bash는 기본 쉘이었습니다. 이것을 제거하면 문제가 해결되었습니다. 그런 다음 chsh user -s /bin/zsh사용자가 zsh를 기본 쉘로 유지합니다.


다른 조개와 같은 문제 (예 fish).
Paul

1

다음과 같은 .profile 파일에서 콘솔로 보내는 텍스트 (예 : echo 문)가 .bashrc있습니까? 이것은 sftp 연결을 망칠 수 있습니다. serverfault에서 비슷한 질문에 대한 내 답변 보기


실제로 조심하십시오. 이와 같은 다른 콘솔을 자동으로 시작하면 fish비슷한 문제가 발생합니다.
Paul

1

안티 바이러스 소프트웨어도이 문제를 일으킬 수 있습니다. 최근에 직면했습니다. sshPuTTY를 통해 정상적으로 작동했지만 WinSCP는 연결할 수 없었습니다. 안티 바이러스에서 예외가 구성되면 작업을 시작했습니다.


0

filezilla를 사용하는 경우 다음 답변이 도움이되었습니다.

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

Filezilla에서 편집-> 설정 메뉴를 선택하고 왼쪽 패널에서 연결-> SFTP로 확장하십시오. 오른쪽에 올바른 개인 키 파일이 있는지 확인하거나 올바른 항목이없는 경우 추가하십시오.

DO 웹 콘솔을 사용하여 루트로 로그인하고 'tail -f /var/log/auth.log'를 수행하십시오. 그런 다음 Filezilla로 로그인하여 메시지를 확인하십시오.


0

serverfault 와 비슷한 질문에 대한 나의 대답 :

방금이 문제 (특히 sftp의 경우 ssh는 아니지만 문제없이 연결할 수있는 곳)에 부딪 쳤으며 여기에서 해결 된 솔루션은 없습니다. 제 경우에는에 너무 많은 ssh 키 (IdentityFile 's)가 있기 때문입니다 ~/.ssh/. ~/.ssh/config올바른 키로 연결하려는 호스트 에 호스트 항목이 없으면 모든 키를 하나씩 전송하는 것 같습니다. 나는 6 개 이상의 키를 가지고 있었고 기본값은 충분했습니다.MaxAuthTries 은 6 (적어도 우분투에서는)입니다.

해결책은 서버를 편집 /etc/ssh/sshd_config하고 늘리는 것이 었습니다 MaxAuthTries. 나는 10으로 설정했습니다.

#MaxAuthTries 6
MaxAuthTries 10

(물론, 올바른 키로 호스트 항목을 추가하십시오.이 경우에는 키를 사용하지 않고 로그인하려고합니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.