Overview
SCP(Secure Copy Protocol)는 네트워크를 통해 안전하게 파일을 전송하는 프로토콜이다.
기본적으로 SSH(Secure Shell) 프로토콜을 기반으로 동작하며, 로컬과 원격 서버 간의 데이터를 암호화하여 전송할 수 있다.
이 글에서는 SCP의 개념과 사용법을 정리하고, 다양한 파일 전송 사례를 실습을 통해 알아본다.

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
'Network' 카테고리의 다른 글
| SSH 접속 설정 방법: RSA 공개키 기반 로그인 완전 정리 (0) | 2022.01.20 |
|---|---|
| DNS(Domain Name System) (0) | 2022.01.19 |
| NFS와 오토마운트 자동 설정 방법 (autofs 활용) (0) | 2022.01.18 |
| FTP 서버 설치 및 설정 방법 - 초보자용 실습 가이드 (0) | 2022.01.18 |
| SSH(Secure Shell) (0) | 2022.01.17 |