이 오류는 클라이언트는 SFTP로 접속을 시도했는데, 서버 쪽에서 SFTP를 제대로 처리하지 못하고 연결을 끊었을 때 주로 발생합니다. 아래 항목을 순서대로 점검해 보세요.
✅ 1️⃣ 서버에 SFTP(Subsystem) 설정이 없는 경우 (가장 흔함)
sshd_config에 SFTP 설정이 없으면 해당 오류가 발생합니다.
sudo vi /etc/ssh/sshd_config
아래 줄이 주석 해제 또는 존재해야 합니다.
Subsystem sftp /usr/lib/openssh/sftp-server
저장 후 SSH 재시작:
sudo systemctl restart ssh
✅ 2️⃣ SFTP 전용 계정(chroot) 설정 오류
SFTP 전용 사용자 설정 시 디렉토리 권한이 잘못되면 즉시 연결이 끊어집니다.
❌ 잘못된 예:
chown user:user /home/user
✅ 올바른 예 (chroot 사용 시):
chown root:root /home/user
chmod 755 /home/user
chown user:user /home/user/upload
chroot 디렉토리는 반드시 root 소유여야 합니다.
✅ 3️⃣ SSH는 되는데 SFTP만 안 되는 경우
SSH 접속 테스트:
ssh user@server
SFTP 테스트:
sftp user@server
- SSH는 되는데 SFTP만 실패 → sshd_config / Subsystem 문제
- 둘 다 안 되면 → 방화벽, 포트, 계정 문제 가능성
✅ 4️⃣ 포트 / 방화벽 문제
sudo ufw status
sudo ufw allow 22
또는 SFTP 포트가 변경된 경우:
sftp -P 포트번호 user@server
✅ 5️⃣ 서버 로그 확인 (가장 정확)
sudo tail -f /var/log/auth.log
접속 시도와 동시에 로그를 보면 정확한 원인 메시지가 나옵니다.
요약
- ✔️
sshd_config의 Subsystem sftp 확인
- ✔️ chroot 디렉토리 소유권(root) 필수
- ✔️ SSH/SFTP 각각 테스트
- ✔️ auth.log로 원인 확인
이 오류는 클라이언트 문제가 아니라 서버 설정 문제인 경우가 90% 이상입니다.
위 순서대로 보면 대부분 해결됩니다.