SFTP 연결을 사용해 EC2 Linux 인스턴스 연결 문제를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Secure File Transfer Protocol(SFTP) 연결을 통해 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 연결할 수 없습니다. 또는 “remote readdir Permission denied”라는 오류 메시지가 나타납니다.

해결 방법

SFTP 연결 상에서 EC2 인스턴스 연결에 실패하는 데에는 여러 가지 이유가 있습니다. 연결 문제를 해결하려면 다음 단계를 따르세요.

인스턴스가 SSH 연결 사전 요구 사항을 충족하는지 확인

SFTP는 SSH 상위에서 작동합니다. 인스턴스가 SSH 연결 사전 요구 사항을 모두 충족하는지 확인합니다. 사전 요구 사항 목록은 Linux나 macOS에서 SSH를 사용해 Linux 인스턴스에 연결을 참고하세요.

상세 메시지 표시를 켜고 인스턴스에 로그인해 오류 식별

다음과 같은 일반적인 연결 오류 메시지 중 하나가 나타날 수 있습니다.

  • Connection timed out 또는 Connection refused
  • Permission denied 또는 Authentication failed
  • Server refused our key

상세 메시지 표시와 SSH 오류 해결 방법에 관한 자세한 내용을 보려면 SSH를 사용해 Amazon EC2 Linux 인스턴스 연결 문제를 해결하려면 어떻게 해야 하나요?를 참고하세요.

EC2 직렬 콘솔을 켠 경우에는 이를 사용해 지원되는 Nitro 기반 인스턴스 유형 문제를 해결할 수 있습니다. 직렬 콘솔은 부팅, 네트워크 구성, SSH 구성 문제를 해결하는 데 도움이 됩니다. 직렬 콘솔을 이용하면 작동 중인 네트워크 연결 없이도 인스턴스에 연결할 수 있습니다. 사용자는 Amazon EC2 콘솔이나 AWS Command Line Interface(AWS CLI)를 사용해 직렬 콘솔에 액세스할 수 있습니다.

직렬 콘솔을 사용하기 전에 계정 수준에서 직렬 콘솔에 액세스 권한을 부여해야 합니다. 그 후 IAM 사용자에게 액세스 권한을 부여하는 AWS Identity and Access Management(IAM) 정책을 생성합니다. 직렬 콘솔을 사용하는 모든 인스턴스에는 최소 한 명의 암호 기반 사용자가 포함되어야 합니다. 자세한 내용을 보려면 EC2 직렬 콘솔 액세스 구성을 참고하세요.

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

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

Amazon Linux, Amazon Linux2, RHEL, Fedora 인증 로그

$ sudo less /var/log/secure

Amazon Linux, Amazon Linux2, RHEL, Fedora 일반 시스템 로그

$ sudo less /var/log/messages

Debian 및 Ubuntu 인증 로그

$ sudo less /var/log/auth.log

Debian 및 Ubuntu 일반 시스템 로그

$ sudo less /var/log/syslog

Amazon Linux 2023

sshd 로그 확인:

journalctl -u sshd

일반 시스템 로그 확인:

journalctl -a

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

SSHD 구성 파일에 SFTP용 하위 시스템이 구성되어 있고 sftp-server용 공유 개체 파일이 해당 디렉토리에 있는지 확인합니다. SFTP 하위 시스템이 누락되어 SFTP 연결이 종료되는 경우 로그에 채널 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 권한 거부 오류 해결

사용자에게 SFTP에 연결할 올바른 권한이 없을 때 원격 readdir 권한 거부 오류가 나타납니다. 대상 디렉토리로 전환하려면 사용자에게 최소한 읽기와 실행 권한이 있어야 합니다.

사용자에게 대상 디렉터리에 액세스할 권한이 있는지 확인합니다.

ls -ldZ /directory

사용자 액세스를 제한하는 액세스 제어 목록(ACL) 권한 확인:

getfacl /directory

SELinux를 활성화했는지 확인:

getenforce

SELinux를 활성화했다면 /var/log/audit/audit.log/var/log/audit.log에 SELinux 컨텍스트에서 발생한 권한 거부 오류가 있는지 검토하세요.

AWS 공식
AWS 공식업데이트됨 6달 전
댓글 없음

관련 콘텐츠