- SCP란?
SCP는 네트워크를 통해 파일을 안전하게 복사하기 위한 프로토콜이다.
SCP는 SSH(Secure Shell)를 기반으로 동작하며, 데이터 전송시 암호화를 통해 보안을 유지한다.
주로 서버와 클라잉너트 간의 파일전송에 사용된다.
- SCP의 특징
1. 보안성
SCP는 SSH를 기반으로 동작하므로, 전송 중인 데이터는 암호화되어 보호된다.
이를 통해 중간자 공격(Man-in-the-Middle Attack)을 방지한다.
2. 빠른 파일 전송
SCP는 SSH세션을 사용하므로 별도의 설정 없이 간단히 실행 가능하며
대규모 파일 전송에도 유리하다.
3. 단방향 전송
SCP는 클라이언트에서 서버로 또는 서버에서 클라이언트로 데이터를 복사한다.
- SCP의 작동원리
1. SSH를 통한 연결
SCP는 SSH를 사용하여 클라이언트와 서버 간에 암호화된 연결을 설정한다.
2. 파일 전송 요청
클라이언트가 서버에 파일을 업로드하거나 다운로드 요청을 보낸다.
3. 암호화된 파일 전송
데이터는 암호화되어 네트워크를 통해 전송된다.
4. 전송완료 후 연결 종료
전송이 완료되면 SSH 연결이 종료된다.
- SCP 명령어 구조
SCP 명령어의 기본 구조는 다음과 같다.
scp [옵션] <원본 경로> <대상 경로>
1. 로컬에서 원격 서버로 파일 업로드
scp file.txt username@server:/remote/directory/
scp /path/to/file.txt username@server:/remote/directory/ //파일경로를 명시적으로지정
file.txt : 전송할 파일 이름 (파일이 있는 경로에서 명령을 실행하거나, 파일경로를 명시적으로지정해야함)
username@server: : 원격 서버의 사용자 이름과 주소
/remote/directory/ : 파일이 저장될 원격 서버의 디렉토리
2. 원격 서버에서 로컬로 파일 다운로드
scp username@server:/remote/file.txt /local/directory/
/remote/file.txt : 원격 서버에서 다운로드할 파일 경로
/local/diretory/ : 다운로드할 파일이 저장될 로컬 경로
3. 디렉토리 전송 디렉토리와 하위 파일을 전송하려면 -r 옵션을 사용한다.
scp -r /local/directory username@server:/remote/directory/
4. 포트 번호 지정
기본적으로 SCP는 SSH의 포트(22번)를 사용하지만, 다른 포트를 사용할 경우 -P옵션을
사용한다.
scp -P 2222 file.txt username@server:/remote/directory/
- SCP의 주요 옵션
-r: 디렉토리를 재귀적으로 복사
-P: SSH 포트 번호를 지정
-C: 파일 전송 중 압축 사용
-q: 진행 상태를 표시하지 않음(조용히 실행)
-v: 디버그 모드 활성화(세부 정보 표시)
- SCP의 장점
1. SSH 기반 보안
전송 데이터가 암호화되어 안전하다.
2. 간단한 사용법
설정 없이 바로 명령어로 파일을 전송할수 있다.
3. 운영체제에 기본 제공
대부분의 Linux 및 Unix 계열 운영체제에서 기본적으로 사용할 수 있다.
- SCP의 단점
1. 제한된 기능
SCP는 기본적인 파일 전송만 지원하며, 추가적인 기능
(예: 전송중 속도 제어, 파일 동기화)은 없다.
2. 속도 제한
SSH는 암호화로 인해 대규모 데이터 전송 시 속도가 느릴 수 있다.
3. 비표준화 경향
SCP는 표준 프로토콜로 정해진것이 아니라 SSH의 확장 기능 중 하나로 동작한다.
- SCP와 관련된 대체 기술
SCP는 단순하고 보안성이 높은 파일 전송 방식이지만, 일부 상황에서는
다음 대체 기술이 더 유리할수 있다.
1. SFTP(Secure File Transfer Protocol)
SSH 기반 파일 전송 프로토콜
SCP보다 기능이 더 많음
(예: 디렉토리 탐색, 파일 삭제, 동기화 등)
2. rsync
SCP와 유사하지만 차등 전송(변경된 데이터만 전송)기능을 제공
전송 속도 최적화에 유리하다.
3. FTP/FTPS
일반적인 파일 전송 프로토콜
FTPS는 SSL/TLS 암호화를 통해 보안을 강화한다.
- SCP를 사용할때 주의사항
1. SSH키 사용
비밀번호 대신 SSH키를 사용하여 인증을 설정하면 더 안전하다.
ssh-keygen -t rsa
ssh-copy-id username@server
2. 방화벽 확인
서버와 클라이언트 간 포트(기본적으로 22번)가 열려있어야 한다.
3. 로그 기록
중요 데이터를 전송할 경우, 전송 후 결과를 확인하여 오류나 실패 여부를 점검해야한다.
- 정리
SCP는 단순한 구조와 높은 보안성을 제공하는 파일 전송 도구로, SSH 환경에서
효율적으로 사용된다.
다만, 고급 기능이 필요한 경우네는 SFTP나 rsync와 같은 대체 기술을 고려할 수 있다.
'개발학습기' 카테고리의 다른 글
| 포트(Port) (0) | 2024.12.29 |
|---|---|
| SFTP(Secure File Transfer Protocol) (0) | 2024.12.28 |
| SSH Server (1) | 2024.12.28 |
| 프로토콜(Protocol) (0) | 2024.12.28 |
| 개발학습기 목록 (1) | 2024.12.28 |