Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

SCP '해당 파일 또는 디렉터리가 없습니다' 오류 해결 방법 총정리

SCP란 무엇인가?

SCP(Secure Copy Protocol)는 SSH(Secure Shell) 프로토콜을 기반으로 하는 보안 파일 전송 프로토콜입니다. 컴퓨터 간에 파일을 안전하게 주고받을 수 있도록 지원하며, 전송 시 두 컴퓨터가 모두 원격 호스트일 수도 있고, 한쪽은 로컬 호스트(내 컴퓨터)이고 다른 한쪽은 원격 호스트일 수도 있습니다.

그런데 최근 많은 사용자들이 SCP로 파일을 복사하려고 할 때 "No Such File or Directory"(해당 파일 또는 디렉터리가 없음) 오류를 겪고 있다는 보고가 이어지고 있습니다.

SCP  해당 파일 또는 디렉터리가 없습니다  오류 해결 방법 총정리

이 글에서는 해당 오류가 발생하는 원인을 살펴보고, 문제를 완전히 해결할 수 있는 실질적인 방법들을 소개합니다. 불필요한 충돌을 피하려면 가이드를 순서대로 정확하게 따라 하는 것이 좋습니다.

SCP에서 "No Such File or Directory" 오류가 발생하는 원인

여러 사용자들의 제보를 바탕으로 문제를 조사한 결과, 다음과 같은 원인으로 인해 오류가 발생하는 것으로 확인되었습니다.

  • 잘못된 명령어: 파일 복사에 사용하는 명령어가 상황에 맞지 않는 경우가 있습니다. 단순 파일 복사와 디렉터리 전체 복사의 명령어는 서로 다르며, 서로 다른 구성의 두 컴퓨터 간 복사 시에도 요구 사항에 맞게 명령어를 수정해야 합니다.
  • 포트 번호 미지정: 컴퓨터 간 파일을 복사할 때 포트 번호가 지정되지 않았을 가능성도 있습니다. 두 호스트 간에 파일을 복사하기 전에 올바른 포트를 먼저 포워딩해야 합니다.
  • 잘못된 로그인 상태: 현재 서버에 로그인한 상태에서 데스크톱으로 파일을 복사하려고 하면, 서버가 자기 자신 내부의 로컬 경로를 찾으려다 오류가 발생할 수 있습니다. 서버 경로에서 로그아웃하면 이를 예방할 수 있습니다.
  • 파일 권한 문제: 복사하려는 파일의 권한이 "읽기 전용(Read-Only)"으로 제한되어 있으면 서버가 파일에 접근하지 못해 복사할 수 없습니다. 파일에 읽기 및 쓰기 권한이 모두 부여되어 있어야 합니다.

문제의 성격을 어느 정도 이해했다면 이제 해결 방법으로 넘어가겠습니다. 충돌을 피하려면 아래 순서대로 진행하세요.

해결 방법 1: 올바른 명령어 사용

파일을 전송하려는 호스트 구성에 따라 알맞은 명령어를 사용해야 합니다. 아래에서 다양한 호스트 구성에 따라 사용할 수 있는 명령어를 정리했습니다.

로컬 호스트 → 원격 호스트로 복사

로컬 호스트는 물리적으로 직접 접근 가능한 실제 컴퓨터이고, 원격 호스트는 사용자가 직접 접근할 수 없는 원격 서버에 위치한 컴퓨터를 의미합니다. 로컬 호스트에서 원격 호스트로 파일을 전송하려면 다음 명령어 형식을 사용합니다.

$ scp "the_file" your_username@the_remote_host:the/path/to/the/directory

예를 들어 "Alexa.txt"라는 텍스트 파일을 복사하려면 다음과 같이 입력합니다.

$ scp Alexa.txt your_username@remotehost.edu:/some/remote/directory

같은 방식으로 디렉터리 전체를 복사하려면 다음 명령어를 사용합니다.

$ scp -r "the_directory_to_copy" your_username@the_remote_host:the/path/to/the/directory/to/copy/to

"Alexa"라는 이름의 디렉터리를 복사하는 예시는 다음과 같습니다.

$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

원격 호스트 → 로컬 호스트로 복사

원격 호스트에서 로컬 호스트로 파일을 복사하려면 명령어 형식이 달라집니다. 아래는 원격 호스트와 로컬 호스트 간에 파일을 복사할 때 사용하는 적절한 명령어입니다.

파일을 복사하려면 다음 명령어를 사용합니다.

$ scp your_username@the_remote_host:the_file /your/local/directory

"Alexa.txt"라는 파일을 복사하려면 다음과 같이 입력합니다.

$ scp your_username@the_remote_host:Alexa.txt /your/local/directory

해결 방법 2: 포트 번호 확인

파일을 복사하기 전에 원격 호스트의 포트 번호를 먼저 확인해야 합니다. 이를 위해 복사 작업을 시작할 때 포트 번호를 함께 지정합니다.

다음 명령어처럼 포트 번호를 표시하면서 컴퓨터 간 복사를 수행할 수 있습니다.

$ scp -P port_number your_username@the_remote_host:the_file /your/local/directory

이 명령어는 원격 호스트로 또는 원격 호스트에서 복사할 때 모두 사용할 수 있으며, "$ scp" 뒤에 "-P (포트 번호)" 옵션만 추가하면 됩니다.

해결 방법 3: 파일 권한 변경

컴퓨터 간에 파일을 복사할 때는 파일에 적절한 권한이 부여되어 있어야 합니다. 이번 단계에서는 파일 권한을 변경하는 방법을 알아보겠습니다.

  1. 복사하려는 파일을 마우스 오른쪽 버튼으로 클릭합니다.
  2. "속성(Properties)"을 클릭하고 "보안(Security)" 탭을 선택합니다.SCP  해당 파일 또는 디렉터리가 없습니다  오류 해결 방법 총정리
  3. "System"과 "Administrator" 계정에 모든 권한이 부여되어 있는지 확인합니다.SCP  해당 파일 또는 디렉터리가 없습니다  오류 해결 방법 총정리

참고: 파일을 복사하는 동안에는 서버 경로에 로그인하지 않도록 주의하세요.