시스템/Linux

[OS] scp를 사용하여 서버간 파일 전송

달빛궁전- 2024. 12. 4. 14:05
scp를 사용하여 OS간 파일 복사와 로컬PC로 업로드, 다운로드 방안에 대해 기술합니다.

 

SCP란? : Secure Copy Protocol로 ssh를 사용하여 서버 (unix, linux)간 파일이나 디렉토리를 복사하는 유틸리티입니다.
 

사전에 ssh key등록이 필요합니다.
Bastion VM에 모두 다 등록이 되어 있다고 가정합니다.
그리고 GCP WebConsole내에서 다운로드를 받는 것으로 하겠습니다.

아래의 조건으로만 사용이 가능합니다.
Bastion접속 → SSH 접속권한이 있는 bastion 계정으로 변경 → scp사용

 

  • bastion접속
     
  • bastion ID로 변경
     
    sudo su - bastion


  • 가져오고자 하는 원격지 서버의 파일을 아래 명령어를 응용하여 받습니다.
    권한 이슈가 있기에 받는 곳은 “/home/bastion” 으로 지정합니다.
     
  • scp [ID]@[원격지서버IP]:파일경로 /다운받을로컬서버경로

  • 로컬로 다운받기 위해 접속한 ID디렉토리로 이동합니다.
    GCP webconsole에서 받기 위해서는 접속한 디렉토리로의 이동이 필요합니다.

  • 다운로드 권한이 있는 ID로 이동
    mv /home/bastion/***.tar /home/접속ID

  • Download
    WebConsole에서 DOWNLOAD FILE선택 후 다운받을 파일의 절대경로를 입력하여 다운로드 받습니다.
     
    SCP 명령어 예시

    현재 접속한 서버에서 원격서버로 전송시
scp [옵션] [파일명][ID]@[IP]:[원격서버저장경로]

원격서버에 있는 파일을 로컬서버에서 다운로드시

scp [ID]@[IP]:[원격서버저장경로] /로컬서버저장경로

절대경로를 사용하는 것이 오류를 줄일 수 있습니다.

 

상세 옵션은 Man페이지를 참조

https://man7.org/linux/man-pages/man1/scp.1.html