
SCP(Secure Copy Protocol)와 SFTP(Secure File Transfer Protocol)는 FTP(File Transfer Protocol)의 대안으로, 로컬 환경에서 비정기적인 파일 전송에 유용하게 활용됩니다. 세 가지 프로토콜 모두 이더넷을 통해 한 위치에서 다른 위치로 파일을 옮기는 데 도움을 줍니다. 다만 FTP는 데이터를 평문(plain text)으로 전송하는 반면, 나머지 두 프로토콜은 통신 시 SSH(Secure Shell) 프로토콜을 사용한다는 점이 큰 차이입니다.
SCP와 SFTP란 무엇인가?
SCP(Secure Copy Protocol)

SCP는 셸(shell)과 원격 명령어만을 사용해 두 컴퓨터 간에 파일을 안전하게 전송하는 비대화형(non-interactive) 파일 전송 방식입니다. 기존 RCP(Remote Copy Protocol)의 보안 강화 버전으로, FTP와 유사한 명령줄 구문을 사용하면서 인증은 SSH 프로토콜을 통해 수행합니다. SFTP 유틸리티를 기반으로 하지만, 스크립트를 활용해 무인 파일 전송을 자동화할 때는 SCP가 더 적합한 선택으로 꼽힙니다.
SCP 명령은 서버로 파일을 전송하거나 서버에서 파일을 가져오는 데 모두 사용할 수 있습니다. 기본적으로 파일의 바이트 데이터를 SSH 터널에 기록하고, 무결성 검증이나 압축 같은 복잡한 처리 과정은 SSH가 담당하도록 합니다.
또한 와일드카드(wildcard) 문법을 지원하기 때문에, 특정 조건에 맞는 여러 파일을 한 번에 전송하거나 받아올 수 있습니다.
파일 복사 범위도 넓습니다. 로컬과 원격 컴퓨터 사이뿐 아니라, 원격 호스트에서 다른 원격 호스트로 직접 파일을 복사하는 것도 가능합니다.
SFTP(Secure File Transfer Protocol)

비대화형인 SCP와 달리, SFTP는 암호화된 SSH 전송 채널 위에서 모든 작업을 수행하는 대화형(interactive) 파일 전송 프로토콜이자 프로그램입니다.
압축이나 공개키(public key) 인증 같은 다양한 기능을 활용해 특정 호스트에 접속·로그인한 뒤, 대화형 명령 모드로 진입합니다.
SFTP라는 이름은 Simple File Transfer Protocol 또는 SSH File Transfer Protocol을 가리킬 수 있습니다. 후자는 안전한 파일 전송을 위해 SSH와 함께 사용하도록 설계된 프로토콜이며, 전자는 가벼운 FTP 버전으로 TFTP에 밀려 중단된 프로토콜로 TCP 포트 115번을 사용합니다.
또한 비대화형 인증 방식을 사용하면 파일을 자동으로 가져올 수 있고, 그렇지 않은 경우 대화형 인증에 성공한 후에 파일을 가져옵니다.
SFTP는 여러 프로토콜과 함께 동작하지만, 일반적으로는 보안 인증을 위해 SSH를 사용합니다.
참고: SFTP는 'SSH 위에서 돌아가는 FTP'가 아니라, 완전히 새롭게 설계된 별도의 프로토콜입니다.
SCP와 SFTP의 차이점
두 파일 전송 프로그램에는 공통점도 있습니다. 둘 다 TCP 포트 22번을 사용하고 SSH 기반으로 동작하기 때문에 보안 측면에서는 동등한 수준입니다.
전송 중 데이터 암호화, 공개키 인증 같은 기능도 모두 제공합니다. 또한 파일 크기 제한이 없어 대용량 파일 전송도 문제없이 지원합니다.
반면 SCP와 SFTP의 주요 차이는 사양과 기능에서 드러납니다.
기능
SCP는 도청으로부터 보호받으며 데이터를 전송하는 데 초점이 맞춰져 있는 반면, SFTP는 파일 접근, 전송, 관리 기능까지 모두 수행합니다.
즉, SCP는 네트워크로 연결된 두 컴퓨터 간 일회성 파일 전송이나 인터넷을 통한 원격 전송에 더 적합하고, SFTP는 여기에 더해 데이터 관리 기능까지 갖추고 있습니다.
작업 범위
SCP는 원격 디렉터리 목록 조회나 파일 삭제 같은 작업을 할 수 없으며 오직 파일 전송만 가능합니다. 반면 SFTP는 파일 삭제와 디렉터리 목록 조회를 포함한 모든 작업을 처리합니다.
SFTP는 GUI 구성 요소를 제공해 원격 관리가 더욱 편리하며, 마치 원격 파일 시스템처럼 동작합니다. 반면 SCP에는 이런 기능이 없습니다.
파일 전송 속도
SCP는 수신 패킷 확인이 빠른 반면, SFTP는 작은 패킷 하나하나마다 응답(ACK)을 주고받아야 합니다. 이러한 차이는 지연 시간(latency)이 높은 네트워크에서 특히 두드러집니다.
SCP의 또 다른 장점은 파일 전송에 더 효율적인 알고리즘을 사용한다는 점입니다.
중단된 전송 재개
SCP는 중단된 파일 전송을 이어서 진행하는 기능을 지원하지 않지만, SFTP는 명령줄 클라이언트를 통해 이를 지원합니다.
명령줄
SCP는 비대화형 방식이라 명령 스크립트를 읽을 수 없으므로 모든 내용을 명령줄에 직접 작성해야 합니다. 반면 SFTP는 대화형 방식이라 파일에서 명령을 읽어 실행할 수 있습니다.
파일 전송에는 어떤 것을 사용해야 할까?
두 프로토콜은 공통점과 차이점을 모두 갖고 있어, 어느 한쪽이 무조건 우월하다고 단정하기는 어렵습니다. 둘 다 SSH 기반으로 동작하기 때문에 보안 기능 면에서는 비슷한 수준입니다. 결국 선택 기준은 속도, 기능, 보안 등 사용자 환경의 요구 사항에 무엇이 가장 잘 맞느냐에 달려 있습니다.
이미지 출처: SSH, Jama00