SCP를 사용하여 VM 간에 파일 이동

적용 대상: ✔️ Linux VM ✔️ Windows VM ✔️ 유연한 확장 집합

이 문서에서는 SCP(Secure Copy)를 사용하여 워크스테이션에서 Azure VM으로 또는 Azure VM에서 워크스테이션으로 파일을 이동하는 방법을 보여 줍니다. 워크스테이션과 VM 간에 신속하고 안전하게 파일을 이동하는 것은 Azure 인프라 관리의 중요한 부분입니다.

이 문서의 경우 SSH가 사용하도록 설정된 Azure에 배포된 VM이 필요합니다. 또한 로컬 컴퓨터에 SCP 클라이언트가 필요합니다. SSH를 기반으로 구축되었으며 대부분의 Linux 및 Windows(10 이상) 설치의 기본 셸에 포함되어 있습니다.

빠른 명령

VM에 파일 업로드

scp file azureuser@azurehost:directory/targetfile

VM에서 파일 다운로드

scp azureuser@azurehost:directory/file targetfile

자세한 연습

예를 들어 Azure 구성 파일을 VM으로 이동하고 로그 파일 디렉터리를 풀다운합니다. 이때 두 경우 모두에서 SCP를 사용합니다.

SSH 키 쌍 인증

SCP는 전송 계층에 대해 SSH를 사용합니다. SSH는 대상 호스트에서 인증을 처리하고 SSH와 함께 기본적으로 제공되는 암호화된 터널에서 파일을 이동합니다. SSH 인증에는 사용자 이름 및 암호를 사용할 수 있습니다. 그러나 SSH 공개 및 프라이빗 키 인증이 보안 모범 사례로 권장됩니다. SSH에서 연결을 인증하면 SCP는 파일 복사를 시작합니다. 적절히 구성된 ~/.ssh/config와 SSH 공개 및 프라이빗 키를 사용할 때 서버 이름(또는 IP 주소)만 사용해서 SCP 연결을 설정할 수 있습니다. SSH 키가 하나만 있는 경우 SCP는 ~/.ssh/ 디렉터리에서 이 키를 찾은 후 VM에 로그인하는 데 기본적으로 사용합니다.

~/.ssh/config와 SSH 공개 및 프라이빗 키 구성에 대한 자세한 내용은 SSH 키 만들기를 참조하세요.

VM에 파일 업로드

첫 번째 예제에서는 Azure 구성 파일을 Automation 배포에 사용되는 VM까지 복사합니다. 이 파일에는 비밀이 포함된 Azure API 자격 증명이 있으므로 보안이 중요합니다. SSH에서 제공하는 암호화된 터널은 파일의 콘텐츠를 보호합니다.

다음 명령에서는 로컬 .azure/config 파일을 FQDN myserver.eastus.cloudapp.azure.com을 사용하여 Azure VM에 복사합니다. FQDN이 설정되지 않은 경우 VM의 IP 주소를 사용할 수도 있습니다. Azure VM의 관리자 사용자 이름은 azureuser입니다. 파일은 /home/azureuser/ 디렉터리로 대상이 지정됩니다. 이 명령에서 고유한 값을 대체합니다.

scp ~/.azure/config azureuser@myserver.eastus.cloudapp.com:/home/azureuser/config

VM에서 디렉터리 다운로드

이 예에서는 VM에서 워크스테이션으로 로그 파일 디렉터리를 복사합니다. 로그 파일에는 중요한 데이터 및 비밀 데이터가 있을 수도 있고 없을 수도 있습니다. 그러나 SCP를 사용하면 로그 파일의 콘텐츠가 암호화됩니다. 로그 디렉터리에 한 번에 하나씩 복사하기에는 관련 파일이 너무 많을 수 있으므로 이 경우 전체 디렉터리를 다운로드하는 것이 좋습니다. SCP를 사용하여 파일을 전송하는 것이 로그 디렉터리 및 파일을 안전하게 워크스테이션으로 가져오는 가장 쉬우면서도 안전한 방법입니다.

다음 명령에서는 Azure VM에서 /home/azureuser/logs/ 디렉터리의 파일을 local/tmp 디렉터리로 복사합니다.

scp -r azureuser@myserver.eastus.cloudapp.com:/home/azureuser/logs/. /tmp/

-r 플래그는 명령에 나열된 디렉터리의 시점부터 파일 및 디렉터리를 재귀적으로 복사하도록 SCP에 지시합니다. 또한 명령줄 구문은 cp 복사 명령과 비슷합니다.

다음 단계