SFTP 연결을 사용하여 EC2 Linux 인스턴스에 연결할 때 발생하는 문제는 어떻게 해결하나요?

최종 업데이트 날짜: 2020년 12월 9일

보안 파일 전송 프로토콜(SFTP) 연결을 사용하여 내 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 연결할 수 없습니다. 또는 [“원격 readdir 권한 거부됨(remote readdir Permission denied)”]이라는 오류가 표시됩니다. 이 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

SFTP 연결을 통해 EC2 인스턴스에 연결하지 못하는 데는 여러 가지 이유가 있습니다. 다음은 일반적인 연결 문제에 대한 문제 해결 단계입니다.

  • 인스턴스가 SSH 연결 사전 조건을 충족하는지 확인합니다.
  • 상세 메시징이 켜진 상태로 인스턴스에 로그인하여 오류를 식별합니다.
  • 인증 및 시스템 로그에 오류가 있는지 검토합니다.
  • SSHD 구성 파일에 SFTP용 하위 시스템이 구성되어 있는지 확인합니다.
  • [원격 readdir 권한 거부됨(remote readdir Permission denied)] 오류를 해결합니다.

해결 방법

인스턴스가 SSH 연결 사전 조건을 충족하는지 확인

SFTP는 SSH 위에서 작동합니다. 인스턴스가 모든 SSH 연결 사전 조건을 충족하는지 확인합니다. 사전 조건 목록은 SSH를 사용하여 Linux 인스턴스에 연결을 참조하세요.

상세 메시징이 켜진 상태로 인스턴스에 로그인하여 오류 식별

다음은 일반적인 오류 메시지입니다.

  • [연결 시간 초과(Connection timed out)] 또는 [연결 거부됨(Connection refused)]
  • [사용 권한 거부됨(Permission denied)] 또는 [인증 실패(Authentication failed)]
  • [서버에서 키 거부(Server refused our key)]

상세 메시징이 켜진 상태로 인스턴스에 로그인하는 방법과 이러한 오류 및 기타 SSH 관련 오류를 해결하는 방법에 대한 자세한 내용은 SSH를 사용하여 Amazon EC2 Linux 인스턴스에 연결하는 문제를 해결하려면 어떻게 해야 하나요?를 참조하세요.

인증 및 시스템 로그에서 오류 검토

RHEL 및 Fedora 인증 로그:

$ sudo less /var/log/secure

RHEL 및 Fedora 일반 시스템 로그:

$ sudo less /var/log/messages

Debian 및 Ubuntu 인증 로그:

$ sudo less /var/log/auth.log

Debian 및 Ubuntu 일반 시스템 로그:

$ sudo less /var/log/syslog

SSHD 구성 파일에 SFTP용 하위 시스템이 구성되어 있는지 확인

SSHD 구성 파일에 SFTP용 하위 시스템이 구성되어 있고 sftp-server용 공유 객체 파일이 해당 디렉터리에 있는지 확인합니다. SFTP 하위 시스템이 누락되어 SFTP 연결이 닫히는 경우 로그에 [채널 0 오류에서 하위 시스템 요청 실패(subsystem request failed on channel 0)] 오류가 표시될 수 있습니다.

RHEL 및 Fedora 기반 배포판:

$ sudo grep Subsystem /etc/ssh/sshd_config
Subsystem sftp    /usr/libexec/openssh/sftp-server
$ sudo ls -l /usr/libexec/openssh/sftp-server
-rwxr-xr-x. 1 root root 100784 Jun 26  2019 /usr/libexec/openssh/sftp-server

Debian 및 Ubuntu 기반 배포판:

$ sudo grep Subsystem /etc/ssh/sshd_config
Subsystem    sftp    /usr/lib/openssh/sftp-server
$ sudo ls -l /usr/lib/openssh/sftp-server
-rwxr-xr-x 1 root root 105608 Mar  4  2019 /usr/lib/openssh/sftp-server

자세한 내용은 Linux 매뉴얼 페이지의 sshd_config에 있는 하위 시스템 섹션을 참조하세요.

원격 readdir 권한 거부 오류 해결

[원격 readdir 권한 거부됨(remote readdir Permission denied)] 오류는 SFTP 연결을 시도하는 사용자에게 올바른 권한이 없음을 나타냅니다. 대상 디렉터리로 전환하려면 사용자에게 최소한 읽기 및 실행 권한이 있어야 합니다.

다음 명령을 사용하여 사용자에게 대상 디렉터리에 액세스할 수 있는 권한이 있는지 확인합니다.

ls -ldZ /directory

다음 명령을 사용하여 사용자 액세스를 제한하는 ACL(액세스 제어 목록) 권한을 확인합니다.

getfacl /directory

다음 명령을 사용하여 SELinux가 사용되는지 확인합니다.

getenforce

SELinux가 사용되는 경우 /var/log/audit/audit.log 또는 /var/log/audit.log에서 SELinux 컨텍스트를 기반으로 하는 권한 거부 오류가 있는지 검토합니다</p


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?