

# SCP를 사용하여 Linux 인스턴스로 파일 전송
<a name="linux-file-transfer-scp"></a>

로컬 컴퓨터와 Linux 인스턴스 간에 파일을 전송하는 한 가지 방법은 SCP(Secure Copy Protocol)를 사용하는 것입니다. SCP는 일회성 파일 복사 등 간단한 작업에 적합한 옵션입니다. SCP는 SSH를 사용한 인스턴스 연결에 사용하는 것과 동일한 .pem 파일을 사용하여 파일 전송을 보호합니다. 파일을 동기화된 상태로 유지해야 하거나 파일이 큰 경우 **rsync**가 SCP보다 빠르고 효율적입니다. **rsync**는 기본적으로 일반 텍스트를 사용하여 데이터를 전송하므로 보안을 위해서는 SSH보다 **rsync**를 사용하세요.

SCP를 사용하여 Linux 인스턴스에 연결하려면 먼저 다음 작업을 완료하세요.
+ **일반적인 사전 조건을 완료하세요.**
  + 인스턴스가 상태 확인을 통과했는지 확인합니다. 인스턴스가 연결 요청을 수락할 준비가 될 때까지 몇 분 정도 걸릴 수 있습니다. 자세한 내용은 [상태 확인 보기](viewing_status.md) 섹션을 참조하세요.
  + [필수 인스턴스 세부 정보 가져오기](connection-prereqs-general.md#connection-prereqs-get-info-about-instance).
  + [프라이빗 키 찾기 및 권한 설정](connection-prereqs-general.md#connection-prereqs-private-key).
  + [(선택 사항) 인스턴스 지문 가져오기](connection-prereqs-general.md#connection-prereqs-fingerprint).
+ **IP 주소에서의 인바운드 SSH 트래픽을 허용합니다.**

  인스턴스와 연관된 보안 그룹이 IP 주소로부터 들어오는 SSH 트래픽을 허용하는지 확인하세요. 자세한 내용은 [컴퓨터에서 인스턴스 연결에 대한 규칙](security-group-rules-reference.md#sg-rules-local-access) 섹션을 참조하세요.
+ **SCP 클라이언트를 설치합니다.**

  대부분의 Linux, Unix 및 Apple 컴퓨터에는 기본적으로 SCP 클라이언트가 포함되어 있습니다. 그렇지 않은 경우, OpenSSH 프로젝트는 SCP 클라이언트를 포함하는 전체 SSH 도구의 무료 구현을 제공합니다. 자세한 내용은 [https://www.openssh.com](https://www.openssh.com)을 참조하세요.

다음 절차에서는 인스턴스의 퍼블릭 DNS 이름, 또는 인스턴스에 있는 경우 IPv6 주소를 사용하여 SCP를 사용하는 파일 전송 단계를 안내합니다.

**SCP를 사용하여 컴퓨터와 인스턴스 사이에서 파일을 전송하려면**

1. 컴퓨터의 소스 파일 위치와 인스턴스의 대상 경로를 확인합니다. 다음 예제에서 프라이빗 키 파일의 이름은 `key-pair-name.pem`, 전송할 파일은 `my-file.txt`, 인스턴스에 대한 사용자 이름은 ec2-user, 인스턴스의 퍼블릭 DNS는 `instance-public-dns-name`, 인스턴스의 IPv6 주소를 `2001:db8::1234:5678:1.2.3.4`입니다.
   + (퍼블릭 DNS) 인스턴스의 대상으로 파일을 전송하려면 컴퓨터에서 다음 명령을 입력합니다.

     ```
     scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@instance-public-dns-name:path/
     ```
   + (IPv6) 인스턴스에 IPv6 주소가 있는 경우 인스턴스의 대상으로 파일을 전송하려면 컴퓨터에서 다음 명령을 입력합니다. IPv6 주소는 이스케이프된(`[ ]`) 대괄호(`\`)로 묶어야 합니다.

     ```
     scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@\[2001:db8::1234:5678:1.2.3.4\]:path/
     ```

1. SSH를 사용하여 인스턴스에 아직 연결하지 않은 경우 다음과 같은 응답이 표시됩니다.

   ```
   The authenticity of host 'ec2-198-51-100-1.compute-1.amazonaws.com (10.254.142.33)'
   can't be established.
   RSA key fingerprint is 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f.
   Are you sure you want to continue connecting (yes/no)?
   ```

   (선택 사항) 보안 알림의 지문이 인스턴스 지문과 일치하는지 확인할 수 있습니다. 자세한 내용은 [(선택 사항) 인스턴스 지문 가져오기](connection-prereqs-general.md#connection-prereqs-fingerprint) 섹션을 참조하세요.

   **yes**를 입력합니다.

1. 전송이 성공한 경우 다음과 유사한 응답이 표시됩니다.

   ```
   Warning: Permanently added 'ec2-198-51-100-1.compute-1.amazonaws.com' (RSA) 
   to the list of known hosts.
   my-file.txt                                100%   480     24.4KB/s   00:00
   ```

1. 반대 방향으로(Amazon EC2 인스턴스에서 로컬 컴퓨터로) 파일을 전송하려면 호스트 파라미터의 순서를 역순으로 지정하면 됩니다. 예를 들어 다음 예시와 같이 EC2 인스턴스에서 `my-file.txt`를 로컬 컴퓨터의 대상에서 `my-file2.txt`로 전송할 수 있습니다.
   + (퍼블릭 DNS) 컴퓨터의 대상으로 파일을 전송하려면 컴퓨터에서 다음 명령을 입력합니다.

     ```
     scp -i /path/key-pair-name.pem ec2-user@instance-public-dns-name:path/my-file.txt path/my-file2.txt
     ```
   + (IPv6) 컴퓨터에 IPv6 주소가 있는 경우 인스턴스의 대상으로 파일을 전송하려면 컴퓨터에서 다음 명령을 입력합니다. IPv6 주소는 이스케이프된(`[ ]`) 대괄호(`\`)로 묶어야 합니다.

     ```
     scp -i /path/key-pair-name.pem ec2-user@\[2001:db8::1234:5678:1.2.3.4\]:path/my-file.txt path/my-file2.txt
     ```