SCP를 사용해 Linux 인스턴스로 파일 전송하기
SCP를 사용해 Linux 인스턴스로 파일 전송하기
로컬 컴퓨터와 Linux 인스턴스 사이에서 파일을 전송하는 방법 중 하나는 보안 복사 프로토콜(secure copy protocol, SCP)을 사용하는 거예요. SCP는 일회성 파일 복사 같은 단순한 작업에 좋은 선택이에요. SCP는 SSH로 인스턴스에 연결할 때 사용하는 동일한 .pem 파일로 파일 전송을 보호해요. 파일을 동기화 상태로 유지해야 하거나 파일이 크다면 rsync가 SCP보다 더 빠르고 효율적이에요. 보안을 위해 SSH 위에서 rsync를 사용하세요. rsync는 기본적으로 데이터를 평문(plain text)으로 전송하거든요.
출처: 문서
본문
SCP로 Linux 인스턴스에 연결하기 전에 다음 작업을 완료하세요.
- 일반 사전 요구 사항을 완료합니다.
- 인스턴스가 상태 검사(status check)를 통과했는지 확인합니다. 인스턴스가 연결 요청을 받을 준비가 되기까지 몇 분이 걸릴 수 있어요. 자세한 내용은 상태 검사 보기 문서를 참고하세요.
- 필요한 인스턴스 세부 정보를 얻습니다.
- 프라이빗 키를 찾고 권한을 설정합니다.
- (선택) 인스턴스 지문(fingerprint)을 얻습니다.
- 여러분의 IP 주소에서 인바운드 SSH 트래픽을 허용합니다. 인스턴스와 연결된 보안 그룹이 여러분의 IP 주소에서 들어오는 SSH 트래픽을 허용하는지 확인하세요. 자세한 내용은 컴퓨터에서 인스턴스에 연결하기 위한 규칙 문서를 참고하세요.
- SCP 클라이언트를 설치합니다.
대부분의 Linux, Unix, Apple 컴퓨터에는 SCP 클라이언트가 기본으로 포함돼 있어요. 없는 경우 OpenSSH 프로젝트가 SCP 클라이언트를 포함한 전체 SSH 도구 모음을 무료로 제공해요. 자세한 내용은 https://www.openssh.com 를 참고하세요.
다음 절차는 인스턴스의 퍼블릭 DNS 이름이나, 인스턴스에 IPv6 주소가 있다면 그 주소를 사용해 SCP로 파일을 전송하는 방법을 안내해요.
컴퓨터와 인스턴스 사이에서 SCP로 파일을 전송하려면
- 컴퓨터에 있는 소스 파일의 위치와 인스턴스의 대상 경로를 확인합니다. 다음 예시에서 프라이빗 키 파일 이름은
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/
- 아직 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)?
(선택) 보안 경고의 지문이 인스턴스 지문과 일치하는지 확인할 수 있어요. 자세한 내용은 (선택) 인스턴스 지문 얻기 문서를 참고하세요.
yes를 입력합니다.
- 전송이 성공하면 응답은 다음과 비슷합니다.
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
- 반대 방향(Amazon EC2 인스턴스에서 컴퓨터로)으로 파일을 전송하려면 호스트 파라미터의 순서를 바꿉니다. 예를 들어
my-file.txt를 EC2 인스턴스에서 로컬 컴퓨터의 대상으로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
더 알아보기
- PuTTY로 연결하기
- Linux 시스템 사용자 관리하기