Networking, Security, Protocols

SCP(Secure Copy)

Somaz 2022. 1. 17. 17:06
728x90
반응형

Overview

SCP(Secure Copy Protocol)는 네트워크를 통해 안전하게 파일을 전송하는 프로토콜이다.


기본적으로 SSH(Secure Shell) 프로토콜을 기반으로 동작하며, 로컬과 원격 서버 간의 데이터를 암호화하여 전송할 수 있다.

 

이 글에서는 SCP의 개념과 사용법을 정리하고, 다양한 파일 전송 사례를 실습을 통해 알아본다.

 

출처 : https://myembeddeddiary.wordpress.com/2016/04/27/scp-command-sending-files-between-linux-systems-quickly-and-easily/

 

 

 

 

 


 

 

 

 

SCP란?

SCP(Secure Copy Protocol)는 로컬 호스트와 원격 호스트 간 또는 원격 호스트 간의 안전한 파일 전송을 위한 프로토콜이다.
SSH(Secure Shell)를 기반으로 하므로 암호화된 통신을 보장하며, Telnet 또는 FTP보다 보안성이 우수하다.

 

💡 SCP의 주요 특징

  • SSH 기반 암호화 지원 → 데이터 전송 시 보안 강화
  • 빠른 파일 전송 속도 → FTP/SFTP보다 단순한 구조로 전송 속도가 빠름
  • 파일/디렉터리 전송 가능 → -r 옵션을 사용하여 디렉터리도 전송 가능
  • 원격에서 로컬 다운로드 가능 → 양방향 파일 전송 지원

 

 

 


 

 

사용법

 

💡 구문 기본 형식

scp [옵션] [소스 경로] [대상 경로]

 

 

1️⃣ 로컬(Local) → 원격(Remote) 파일 전송

 

① 단일 파일 전송

scp [옵션] [파일명] [원격지_사용자]@[원격지_IP]:[저장 경로]
 
 

📌 예제

scp test.txt user@192.168.1.10:/home/user/
  • test.txt 파일을 192.168.1.10 의 /home/user/ 경로로 전송

 

 

전송 확인

ssh user@192.168.1.10 ls -l /home/user/test.txt

 

 

 

 

 

② 여러 파일 전송

scp file1.txt file2.txt user@192.168.1.10:/home/user/
  • file1.txt, file2.txt 파일을 /home/user/ 경로로 전송

 

 

 

 

③ 디렉터리 전체 전송 (-r 옵션)

scp -r my_folder user@192.168.1.10:/home/user/
  • my_folder 디렉터리 전체를 /home/user/ 경로로 복사

 

 

전송 확인

ssh user@192.168.1.10 ls -l /home/user/my_folder/

 

 

 

 

 

 


 

 

 

 

2️⃣ 원격(Remote) → 로컬(Local) 파일 다운로드

 

① 단일 파일 다운로드

scp user@192.168.1.10:/home/user/test.txt .
  • 192.168.1.10/home/user/test.txt 를 현재 디렉터리로 다운로드

 

다운로드 확인

ls -l test.txt

 

 

 

 

② 여러 파일 다운로드

scp user@192.168.1.10:/home/user/{file1.txt,file2.txt} .
  • {} 를 사용하여 여러 개의 파일을 한 번에 가져올 수 있음

 

 

③ 디렉터리 전체 다운로드 (-r 옵션)

scp -r user@192.168.1.10:/home/user/my_folder .
  • /home/user/my_folder 전체를 로컬로 다운로드

 

 

다운로드 확인

ls -l my_folder/

 

 

 

 


 

 

 

 

3️⃣ 원격 → 원격 서버 간 파일 전송

scp user1@192.168.1.10:/home/user1/test.txt user2@192.168.1.20:/home/user2/
  • 192.168.1.10 서버에서 192.168.1.20 서버로 직접 전송
  • 중간에 로컬 PC를 거치지 않고 서버 간 직접 파일 이동 가능

 

 

 


 

 

 

 

SCP 주요 옵션 정리

옵션 설명
-r 디렉터리 전송
-P [포트] 기본 포트(22) 변경
-C 압축하여 전송 (빠른 속도)
-v 상세 로그 출력
-i [key_file] SSH 키 파일 사용

 

 

✅ 예제: SSH 키 인증 및 포트 변경하여 파일 전송

scp -P 2222 -i ~/.ssh/id_rsa test.txt user@192.168.1.10:/home/user/

 

 

 


 

 

 

SCP 보안 강화 설정

 

1️⃣ 강력한 암호화 알고리즘 사용 (/etc/ssh/sshd_config 설정)

Ciphers aes256-ctr,aes192-ctr,aes128-ctr
 

 

SSH 서비스 재시작

systemctl restart sshd
 
 

2️⃣ Root 계정 로그인 차단

PermitRootLogin no
 
 

3️⃣ 패스워드 로그인 비활성화 (키 인증 사용)

PasswordAuthentication no
 
 
 

설정 적용 후 SSH 재시작

systemctl restart sshd

 

 

 

 


 

 

 

 

 

마무리

SCP는 SSH를 기반으로 안전한 파일 전송을 지원하는 강력한 도구이다.
FTP보다 보안성이 뛰어나며, 간단한 명령어로 서버 간 파일 전송을 신속하게 수행할 수 있다.

 

 

💡 정리

  • 기본적으로 SSH를 이용하여 파일을 암호화하여 안전하게 전송
  • -r 옵션을 사용하여 디렉터리 전체 전송 가능
  • 원격 → 로컬 다운로드 및 원격 → 원격 파일 이동 지원
  • SCP 보안을 강화하려면 SSH 보안 설정 및 공개 키 인증 사용 필수

 

이제 SCP 명령어를 실습해보며, 효율적인 파일 전송을 익혀보자! 

 

 

 

 


 

Reference

https://myembeddeddiary.wordpress.com/2016/04/27/scp-command-sending-files-between-linux-systems-quickly-and-easily/

 

 

 

728x90
반응형

'Networking, Security, Protocols' 카테고리의 다른 글

RSA 공개키를 이용한 SSH 접속  (0) 2022.01.20
DNS(Domain Name System)  (0) 2022.01.19
NFS(Network File System) / auto fs(auto file system)  (0) 2022.01.18
FTP란? FTP Server란?  (0) 2022.01.18
SSH(Secure Shell)  (0) 2022.01.17