SSH 콘솔에 로그인하는 것은 정상인데 SFTP를 통한 로그인은 불가능합니다. 이유는 무엇입니까?

SSH 콘솔에 로그인하는 것은 정상인데 SFTP를 통한 로그인은 불가능합니다. 이유는 무엇입니까?

SFTP용 Filezilla를 사용하려고 하는데 서버에 연결할 수 없습니다. 방화벽 규칙 때문인 것 같나요?

내 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

답변1

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

  • OpenSSH 서버 설치
  • 구성된sshd_config
    • 공개키 확인은
    • 하위 시스템 SFTP 내부 SFTP
  • ~/.ssh/authorized_keys에 공개 키를 추가하세요.

  • SSH 서버를 시작하고 포트 22/TCP를 엽니다. # /etc/init.d/sshd start

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

마지막으로 테스트해 보세요. $ sftp <login>@<hostname>

답변2

내 경우에는 사용자가 zshbash 대신 zsh 쉘에 들어갈 수 있도록 .bashrc 파일의 맨 위에 있었습니다.

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

답변3

예를 들어 콘솔로 이동하는 .profile 파일에 텍스트(예: 에코 문)가 있습니까 .bashrc? 이로 인해 SFTP 연결이 중단될 수 있습니다. 날 봐 답변serverfault에 대한 비슷한 질문

답변4

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를 사용하여 로그인을 시도하고 메시지를 기록해 두십시오.

관련 정보