scp(secure copy)는 SSH를 기반으로 한 파일 전송 명령어로, 원격 서버 간 또는 로컬과 원격 서버 간에 파일을 안전하게 복사할 수 있습니다. ssh 프로토콜을 사용하기 때문에 파일 전송 시 암호화되어 보안이 보장됩니다. 이는 FTP나 다른 비암호화된 파일 전송 방식보다 안전하게 파일을 전송할 수 있는 방법입니다.
scp 명령어 기본 사용법
scp [옵션] 원본 경로 대상 경로
- 원본 경로: 복사할 파일의 경로. 로컬 파일 또는 원격 서버의 파일 경로가 될 수 있습니다.
- 대상 경로: 파일을 복사할 대상 위치. 로컬 경로나 원격 서버의 경로가 될 수 있습니다.
scp 사용 예시
1. 로컬에서 원격 서버로 파일 전송
user@local:~$ scp /home/user/test.txt user@remote:/home/user/
user@remote's password:
test.txt 100% 12KB 24.0KB/s 00:00
위 예제는 로컬 머신의 /home/user/test.txt 파일을 원격 서버 user@remote의 /home/user/ 디렉터리로 복사하는 과정입니다. user@remote 사용자의 비밀번호를 입력한 후 파일 전송이 완료됩니다.
2. 원격 서버에서 로컬로 파일 가져오기
user@local:~$ scp user@remote:/home/user/test.txt /home/localuser/
user@remote's password:
test.txt 100% 12KB 24.0KB/s 00:00
이 예시는 원격 서버의 /home/user/test.txt 파일을 로컬 머신의 /home/localuser/ 디렉터리로 가져오는 과정입니다. user@remote 계정의 비밀번호를 입력한 후 파일이 복사됩니다.
3. 원격 서버 간 파일 전송
user@local:~$ scp user1@remote1:/home/user1/test.txt user2@remote2:/home/user2/
user1@remote1's password:
user2@remote2's password:
test.txt 100% 12KB 24.0KB/s 00:00
이 명령은 원격 서버 A(remote1)의 test.txt 파일을 원격 서버 B(remote2)의 /home/user2/ 디렉터리로 복사하는 예시입니다. 두 원격 서버의 사용자 비밀번호를 입력한 후 전송이 완료됩니다.
옵션 설명
- -r: 디렉터리 복사를 위해 사용됩니다. scp는 기본적으로 파일만 복사하므로 디렉터리를 복사할 때는 이 옵션을 추가해야 합니다.
- -P [포트번호]: SSH가 기본적으로 사용하는 포트 외에 다른 포트에서 통신할 경우 포트 번호를 지정할 수 있습니다.
- -i [키파일]: 비밀번호 대신 SSH 키 파일을 사용해 인증할 때 이 옵션을 사용합니다.
- -v: 전송 과정을 자세하게 출력할 때 사용됩니다. 디버깅 목적에도 유용합니다.
디렉터리 복사 예시
user@local:~$ scp -r /home/user/documents user@remote:/home/user/
user@remote's password:
documents/file1.txt 100% 24KB 48.0KB/s 00:00
documents/file2.txt 100% 16KB 32.0KB/s 00:00
위 명령어는 로컬의 documents 디렉터리를 원격 서버의 /home/user/ 디렉터리로 복사하는 과정입니다. -r 옵션을 사용하여 디렉터리 내의 모든 파일과 하위 디렉터리를 재귀적으로 복사할 수 있습니다.
보안과 편리함
scp는 SSH를 이용해 데이터를 암호화하여 전송하므로 네트워크 상에서의 보안 위협을 방지할 수 있습니다. 또한, scp는 비밀번호 또는 SSH 키 파일을 사용해 인증할 수 있어, 자동화된 스크립트나 백업 작업에서도 유용하게 활용됩니다.
참고사이트
'Linux' 카테고리의 다른 글
[리눅스] uptime 명령어 완벽 가이드 사용법(시스템 가동 시간) (0) | 2024.10.12 |
---|---|
[리눅스] last 명령어 완벽 가이드 사용법(로그인 로그 확인) (0) | 2024.10.12 |
[리눅스] dmesg 명령어 완벽 가이드 사용법(부팅로그) (1) | 2024.10.12 |
[리눅스] rsync 명령어 완벽 가이드 사용법(동기화) (0) | 2024.10.12 |
[리눅스] traceroute 명령어 완벽 가이드 사용법(IP 도메인 추적) (1) | 2024.10.11 |
[리눅스] nslookup 명령어 완벽 가이드 사용법(DNS 조회) (5) | 2024.10.08 |
[리눅스] netstat 명령어 완벽 가이드 사용법(네트워크 연결/포트 상태 확인) (0) | 2024.10.08 |
[리눅스] curl 명령어 완벽 가이드 사용법(데이터 전송) (1) | 2024.10.08 |