scp 명령어는 ssh를 사용하여 파일을 전송하는 파일 전송 프로토콜입니다.
ssh를 이용하여 파일 전송을 하는 sftp도 있지만, sftp보다 더 단순하고 빨리 전송할 수 있습니다. 다만, 명령어와 데이터 제어의 기능성 측면에서 sftp보다 제한적이다.
저뿐만 아니라 현업에서 리눅스 OS를 이용하시는 분들은 scp 명령어를 정말 많이 사용하니 잘 알아 두시는 게 좋습니다.
SCP (Secure Copy Protocol)
SSH 기반의 파일 복사 프로토콜로, scp 명령어를 통해 파일 전송이 가능합니다. 보안성을 보장하며 간단한 파일 전송 작업에 많이 사용됩니다. 로컬시스템과 원격 시스템 간, 또는 원격 시스템 간의 파일 전송이 가능하고, ssh를 기반으로 하니 암호화된 형태로 전송하여 데이터 보안을 보장합니다.
로컬 시스템 -> 원격 시스템 :
1. 단일 파일 전송
scp [파일명] [원격지id]@[원격지ip]:[수신 디렉토리 위치 (보낼 경로)]
예시 : scp kali_scp root@10.0.2.4:/home/hacker/centos_scp
2. 여러 파일 전송
2-1. 띄어쓰기 사용(공백으로 구분)
scp [파일명] [원격지id] [원격지id] @[원격지ip]:[수신 디렉토리 위치 (보낼 경로)]
예시 : scp kali_scp2.txt kali_scp2.txt root@10.0.2.4:/home/hacker/centos_scp
2-2. 와일드카드 사용(*)
scp [*] [원격지id]@[원격지ip]:[수신 디렉토리 위치 (보낼 경로)]
> 똑같은 확장자를 전송할 때 *.txt 등 사용
예시 : scp *.txt root@10.0.2.4:/home/hacker/centos_scp
3. 디렉터리와 그 안의 다수 파일 전송
scp -r [디렉터리명] [원격지id]@[원격지ip]:[수신 디렉토리 위치 (보낼 경로)]
예시 : scp -r kali_scp root@10.0.2.4:/home/hacker
4. 추가 옵션
옵션 | 설명 |
-r | 디렉터리를 재귀적으로 복사 (폴더와 하위 파일/폴더 모두 전송) |
-P (대문자) | SSH 포트를 지정 (기본값은 22번 포트) |
-C (대문자) | 데이터 전송 시 압축을 사용하여 전송 속도를 높임 |
-i | 특정 SSH 개인 키 파일을 사용하여 인증 |
-v | 디버그 모드로, 전송 시 자세한 로그를 출력 (문제 해결 시 유용) |
-q | 전송 중 진척 상황을 표시하지 않음 (조용한 모드) |
-l | 대역폭 제한 (kbps 단위로 지정) |
-o | SSH 구성 옵션을 직접 지정 (예: -o "StrictHostKeyChecking=no") |
원격 시스템 -> 로컬 시스템 :
1. 단일 파일 수신
scp [원격지id]@[원격지ip]:[원본위치와 파일명] [받는위치]
예시 : scp root@10.0.2.4:/home/hacker/kali_scp/kali_scp.txt /home/cent_scp
2. 여러 파일 수신
2-1 개별 파일 경로 지정
scp [원격지id]@[원격지ip]:[원본위치와 파일명] [원격지id]@[원격지ip]:[원본위치와 파일명] [받는위치]
예시 : cp root@10.0.2.4:/home/hacker/kali_scp/kali_scp2.txt root@10.0.2.4:/home/hacker/kali_scp/kali_scp3.txt /home/cent_scp
2-2 여러 개의 파일을 묶어서 한 번에 다운로드
scp [원격지id]@[원격지ip]:[원본위치와 파일명] {묶을 번호 및 파일명} [받는위치]
예시 : scp root@10.0.2.4:/home/hacker/kali_scp/kali_scp{4,5}.txt /home/cent_scp
2-3 와일드 카드 사용
scp [원격지id]@[원격지ip]:[*] [받는위치]
예시 : scp root@10.0.2.4:/home/hacker/kali_scp/kali_scp*.txt /home/cent_scp
2-4 디렉토리와 파일 모두 수신
scp [옵션r] [원격지id]@[원격지ip]:[원본디렉토리] [받는위치]
예시 : scp -r root@10.0.2.4:/home/hacker/kali_scp /home/cent_scp
원격 시스템 -> 원격 시스템 :
scp [원격지1 id]@[원격지1 ip]:[전송할 파일명] [원격지2 id]@원격지2 ip]:[받는 위치]
- [원격지1 id]@[원격지1 ip]:[전송할 디렉토리 및 파일명] : 첫 번째 원격 시스템에서 전송할 파일의 경로입니다.
- [원격지2 id]@원격지2 ip]:[받는 위치] : 두 번째 원격 시스템에서 파일을 받을 경로입니다.
scp 명령어는 로컬 시스템에서 원격 시스템, 원격 시스템에서 로컬 시스템, 원격 시스템에서 원격 시스템으로 파일 전송을 할 수 있어 아주 간편하고 편리합니다. 현업에서는 아주아주 자주 사용하니 자세히 알진 않더라도 이런 명령어가 있다는 걸 숙지하고 있어야합니다. 사용 방법은 사용하기 전에 검색해서 알아보면 되니까요!
'정보보안 > 리눅스' 카테고리의 다른 글
[리눅스] 로그 관리 (var/log, journalctl 등) (0) | 2024.11.27 |
---|---|
[리눅스] 파일 권한과 관리 (ls, chown, chmod, chgrp) (2) | 2024.11.24 |
[리눅스] 파일 및 디렉토리 무결성 검사 MD5sum (0) | 2024.11.05 |
[리눅스] 시스템 종료 및 재시작 명령어 (shutdown, reboot, poweroff, halt sync, init, systemctl,systemd) (0) | 2024.10.08 |
[리눅스] KALI, CENTOS, UBUNTU 싱글모드 부팅 및 root passwd 변경(분실) (0) | 2024.08.07 |