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

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



답변

다른 호스트에서 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>


답변

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

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


답변

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


답변

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


답변

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로 로그인하여 메시지를 확인하십시오.


답변

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

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

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

#MaxAuthTries 6
MaxAuthTries 10

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


답변