SJ_Koding

ppk가 필요한 서로 다른 두 개의 서버 간 파일 전송하기 (SSH, SCP) 본문

카테고리 없음

ppk가 필요한 서로 다른 두 개의 서버 간 파일 전송하기 (SSH, SCP)

성지코딩 2024. 5. 29. 13:54

만약 100GB짜리의 파일을 옮겨야할때, A라는 서버와 B서버가 있고(이하 각각 A, B로 칭함), A에서 B로 파일을 전송한다고 하자.

가장 쉬운 방법은 A라는 서버에서 파일을 로컬로 다운받고 로컬에서 다시 B서버로 전송하는 방법이있는데,

이렇게하면 교수님이나 직장 상사가 엉덩이를 토닥이며 극찬을 퍼붓는다.

사실 A에서 B로 바로 전송하는게 가장 현명하고 빠른 방법인데,
미리 말하면 환경에 따라 다르겠지만

A -->로컬 : 20시간 소요, A-->B: 20분 소요 정도의

유의미한 차이를 확인했다. 또한 인증 과정에서 ppk파일을 사용하는 경우 어떻게 하면 될까?


1. PuttyGen 설치 (ppk파일이 없을경우)

먼저, ppk 파일을 생성하거나 변환하기 위해서는 PuttyGen이 필요하다. PuttyGen은 PuTTY에서 사용하는 키 생성기 프로그램이다. 아래 단계를 따라 설치하고 설정할 수 있다.

  1. PuTTY 공식 웹사이트에 접속하여 PuttyGen을 다운로드한다.
  2. 설치 후 PuttyGen을 실행한다.
  3. 기존의 OpenSSH 키를 ppk 파일로 변환하려면 Conversions 메뉴에서 Import Key를 선택하고 OpenSSH 키 파일을 불러온다.
  4. Save private key 버튼을 눌러 ppk 파일로 저장한다.

2. ppk 파일을 pem 파일로 변환하기 

Linux/Mac 환경에서 OpenSSH를 사용하여 ppk 파일을 pem 파일로 변환할 수 있다. 이는 AWS와 같은 서비스에서 많이 사용된다. 변환 작업은 아래 단계를 따른다.

  1. PuttyGen을 사용하여 ppk를 pem으로 변환:
    • PuttyGen을 실행하고 Load 버튼을 눌러 ppk 파일을 불러온다.
    • Conversions 메뉴에서 Export OpenSSH key를 선택한다.
    • 파일을 저장할 때 .pem 확장자를 사용하여 저장한다.
  2. 명령줄을 사용하여 변환 (Linux/Mac):
    • putty-tools 패키지를 설치하여 puttygen 명령어를 사용한다.
      sudo apt-get install putty-tools   # Debian/Ubuntu
      sudo yum install putty             # CentOS/RHEL
    • ppk 파일을 pem 파일로 변환한다.
      puttygen yourkey.ppk -O private-openssh -o yourkey.pem

3. A 서버에서 B 서버로 파일 전송

ppk 파일을 pem 파일로 변환한 후, SCP(Secure Copy Protocol)를 사용하여 A 서버에서 B 서버로 파일을 전송할 수 있다. 아래는 pem 파일을 사용하는 SCP 명령어 예제이다.

  1. SCP 사용 (Linux/Mac 환경):
    scp -i yourkey.pem yourfile user@B_server:/path/to/destination

4. SCP 명령어 세부 설명

  • scp: SCP 명령어의 실행 파일이다.
  • -i yourkey.pem: pem 파일을 지정한다.
  • yourfile: 전송할 파일의 경로이다.
  • user@B_server: B 서버의 사용자명과 서버 주소이다.
  • /path/to/destination: B 서버에서 파일이 저장될 경로이다.

 

만약 포트번호를 지정해야한다면 보낼 파일명 이전에 -P {포트번호} 를 추가하면 된다.


A 서버에서 B 서버로 대용량 파일을 전송하는 가장 효율적인 방법은 직접 전송하는 것이다. 이를 위해 SCP를 사용하고, pem 파일을 통해 인증을 설정하면 안전하고 빠르게 파일을 전송할 수 있다. 위의 과정을 따라 설정하고 실행하면 시간과 노력을 절약할 수 있을 것이다.

이제, 이러한 방법을 통해 파일 전송 작업을 훨씬 더 효율적으로 수행해 보자.