Linux / 명령어 / scp - SSH로 로컬·원격 파일 복사
scp는 SSH를 이용해 로컬과 원격 시스템 사이에 파일을 복사합니다. 보통 사용자@호스트:경로 형태로 원격 위치를 나타냅니다.
scp 명령어란?
현재 OpenSSH의 scp는 기본적으로 SFTP 프로토콜을 사용하며, 구형 서버와 호환해야 할 때만 레거시 SCP 프로토콜을 선택합니다. 복사 방향은 원본과 대상의 순서로 결정됩니다. 파일 이름에 콜론이 포함되거나 원격 셸이 해석하는 특수문자가 있을 때는 경로 구문과 인용에 주의하세요.
기본 문법
scp [옵션] 원본 대상
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man scp으로 현재 시스템의 설명을 확인하세요.
사용 예제
로컬 파일을 서버로 복사
대상 경로의 기존 파일이 교체될 수 있으니 먼저 확인합니다.
scp report.txt alice@server.example.com:/home/alice/
서버 파일을 로컬로 복사
원격 파일을 현재 디렉터리로 가져옵니다.
scp alice@server.example.com:/home/alice/report.txt .
디렉터리 복사
-r을 지정해 하위 파일을 포함합니다. 예상 크기를 확인하세요.
scp -r project/ alice@server.example.com:/home/alice/
전송 방향과 결과 확인하기
scp 로컬파일 사용자@호스트:경로는 로컬에서 원격으로 복사합니다. 다음의 서버·경로는 설명용이므로 실제 권한과 저장 공간을 확인해 바꾸세요.
scp report.txt user@server.example.test:/tmp/report.txt
성공 시 전송 진행률이 표시되거나, 출력 설정에 따라 아무 메시지 없이 끝날 수 있습니다. 원격 서버에서 ssh user@server.example.test 'ls -lh /tmp/report.txt'로 파일 이름과 크기를 확인하세요.
콜론 앞뒤 위치가 전송 방향을 결정합니다. 기존 원격 파일을 덮어쓸 수 있으므로 목적지 경로를 재확인하세요. 중단된 대용량 전송을 재개하거나 여러 파일을 반복 동기화하려면 rsync가 더 적합할 수 있습니다.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-r |
디렉터리를 재귀적으로 복사합니다. |
-P 포트 |
SSH 서버 포트를 지정합니다. ssh의 -p와 달리 대문자입니다. |
-i 키파일 |
인증에 사용할 개인키를 지정합니다. |
-p |
파일의 수정 시각과 권한을 가능한 범위에서 보존합니다. |
-O |
호환성 필요 시 레거시 SCP 프로토콜을 사용합니다. |
사용할 때 주의할 점
대상 파일이 존재하면 덮어쓸 수 있으므로 경로와 계정을 확인하고 중요한 파일은 먼저 백업하세요. -O의 구형 프로토콜은 원격 셸 해석과 보안 위험이 있어 일반적으로 사용하지 않습니다. scp는 변경 파일만 비교해 동기화하거나 삭제 상태를 맞추는 도구가 아닙니다. 그러한 작업에는 rsync가 적합할 수 있습니다.
자주 묻는 질문
scp에서 포트 옵션은 -p인가요?
아니요. 서버 포트는 대문자 -P입니다. 소문자 -p는 파일의 시각과 권한 보존 옵션입니다.
공식 문서
옵션의 정확한 동작과 구현별 차이는 scp 관련 공식 문서에서 확인할 수 있습니다.









