[CentOS 7] scp로 원격 파일 전송하기

2019. 11. 14. 21:15CentOS 7/Basic

반응형

scp, scure copy

서버간 파일을 전송할 때 사용하는 명령어.

scp
usage: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
  1. local에서 remote server로 파일 업로드
    1-1) username과 ip주소, 그리고 비밀번호를 이용하여 파일 업로드
    1-2) username과 호스트주소, 그리고 비밀번호를 이용하여 파일 업로드
    2-1) username과 호스트주소, 그리고 키파일로 파일 업로드
    2-2) .ssh config파일을 이용하여 호스트 별명으로 파일 업로드
  2. remote server로부터 local로 파일 다운로드

1. ssh 로 원격서버에 파일 전송하기 (local → remote)

scp [옵션] 보낼파일 사용자@호스트:도착지경로
  • 옵션 : 필요에 따라 사용한다.
    • -i : identity_file. ssh 접속에 이용되는 키파일
      만일 비밀번호를 사용하지 않고 ftp전송하고 싶다면 키파일을 설정해 줘야 합니다.
    • -r : 전송할 대상이 폴더일 경우 이용
    • -P : ssh
  • 보낼 파일 : 절대 경로 또는 상대 경로를 포함한 파일의 fullname을 작성하면 됩니다.(로컬에서 보낼 파일)
  • 도착지경로 : 파일을 보낼 (원격 서버의) 도착지 경로.
    • 경로 작성 예
      • ~/box : 사용자의 홈디렉토리에 위치한 box 디렉토리
      • /usr/local/cherry/test : 절대 경로로도 지정 가능

1-1) 키파일을 사용하지 않고 전송 (ip 주소로)

scp /Users/jini/Pictures/white.png jini@133.xxx.xxx.18:~/box
jini@133.xxx.xxx.18\'s password:
white.png                                 100%  934    11.2KB/s   00:00

-i 옵션으로 키파일을 설정하지 않는다면, 다음 행에서 사용자의 접속비밀번호를 요구합니다.
비밀번호를 올바르게 입력할 경우 파일이 전송됩니다.


1-2) 키파일을 사용하지 않고 전송 (호스트 주소로)

scp /Users/jini/Pictures/gift.png jini@jiniworld.me:~/box
jini@jiniworld.me\'s password:
gift.png                                   100% 6731    38.0KB/s   00:00

ip주소에 호스트주소가 할당되어있다면, 호스트 주소를 이용해도 동일한 동작을 합니다.


2-1) 키파일을 이용하여 전송

scp -i ~/.ssh/cherry.pem ~/Pictures/like.png jini@jiniworld.me:~/box
like.png                                   100% 5615    16.9KB/s   00:00

키파일을 이용하여 비밀번호를 사용하지 않고 전송해보자.
※ Windows 10의 경우 홈디렉토리(~)를 %HOMEPATH%로 이용하면 됩니다.


2-2) ssh config 설정을 이용하여 ssh 접속 간편화

만일, jini@jiniworld.me 라는 주소를 자주 이용할 거 같다면, 로그인된 사용자의 홈디렉토리/.ssh/config 에 접속정보를 저장하여 간단하게 이용할 수 있다.

만일, 현재 로그인 중인 User의 홈 디렉토리에 .ssh 디렉토리가 존재하지 않다면 생성해주세요.

cd ~
mkdir .ssh
vim config

config 파일은 아래와 같이 작성합니다.

Host cherry                                                                   
  HostName jiniworld.me
  User jini
  Port 22
  IdentityFile ~/.ssh/cherry.pem
  • Host : 간편화한 호스트명 alias
  • HostName : 호스트 주소 또는 ip 주소
  • User : 호스트 주소에 로그인 가능한 user
  • Port : ssh 접속에 이용되는 포트 (22는 default로 생략 가능하다.)
  • IdentityFile : ssh 접속에 이용될 키파일

scp ~/Pictures/blue.png cherry:~/box
blue.png                                  100%  230     2.6KB/s   00:00

config 파일에 등록한 ssh 접속정보를 이용하여 위와 같이 간단하게 scp 명령어를 이용할 수 있습니다.
-i ./.ssh/cherry.pem jini@jiniworld.mecherry로 대체합니다.



파일이 잘 전송되었는지 확인해봅시다.

ssh cherry
Last login: Thu Nov 14 20:21:15 2019 from xx.xxx.xxx.xxx
[jini@cherry ~]$ ll box
합계 24
-rw-r--r-- 1 jini jini  230 11월 14 20:22 blue.png
-rw-r--r-- 1 jini jini 6731 11월 14 20:24 gift.png
-rw-r--r-- 1 jini jini 5615 11월 14 20:23 like.png
-rw-r--r-- 1 jini jini  934 11월 14 18:18 white.png

config파일에 설정한 호스트정보를 이용하여 ssh 접속을 하고, box 디렉토리 내에 존재하는 파일이 출력됩니다.


2. ssh 로 원격 서버로부터 파일 받기 (remote → local)

만약 원격 서버로부터 파일을 받고 싶다면,

scp [옵션] 사용자@호스트:보낼파일 도착지경로
  • 옵션 : 필요에 따라 사용한다.
    • -i : identity_file. ssh 접속에 이용되는 키파일
      만일 비밀번호를 사용하지 않고 ftp전송하고 싶다면 키파일을 설정해 줘야 합니다.
  • 보낼 파일 : 원격 서버로부터 받을 파일의 경로를 포함한 파일의 fullname을 작성하면 됩니다. (상대경로는 사용자의 홈디렉터리 기준입니다.)
  • 도착지경로 : 받은 파일을 저장할 위치. (로컬)

scp -r cherry:~/box ~/Pictures/test/.
blue.png                                      100%  230     2.6KB/s   00:00    
gift.png                                      100% 6731    75.8KB/s   00:00    
like.png                                      100% 5615    63.5KB/s   00:00    
white.png                                     100%  934    10.5KB/s   00:00

ll ~/Pictures/test
total 48
drwxr-xr-x  6 jini  staff   192 11 14 20:37 .
drwx------+ 8 jini  staff   256 11 14 20:37 ..
-rw-r--r--  1 jini  staff   230 11 14 20:37 blue.png
-rw-r--r--  1 jini  staff  6731 11 14 20:37 gift.png
-rw-r--r--  1 jini  staff  5615 11 14 20:37 like.png
-rw-r--r--  1 jini  staff   934 11 14 20:37 white.png

cherry 서버에 저장했었던 파일들을 다시 클라이언트의 test 폴더에 받았습니다.


++ 키워드

  1. scp를 이용한 ssh 파일 전송
  2. ssh를 사용한 파일 전송
  3. .ssh config 설정을 통한 scp 명령어 간편화
  4. scp 명령어를 이용한 원격 파일 복사
728x90
반응형