SCP와 SFTP: 파일 전송에 어느 것을 사용해야 합니까?
SCP(Secure Copy) 및 SFTP(Secure File Transfer Program)는 FTP(File Transfer Protocol)의 대안으로, 예약되지 않은 파일 전송에 유용합니다. 세 가지 모두 네트워크 매체를 통해 한 위치에서 다른 위치로 파일을 이동하는 데 도움이 됩니다. 그러나 FTP는 데이터를 일반 텍스트로 보내는 반면, 다른 두 FTP는 SSH 파일 전송 프로토콜(SFTP)을 사용하여 통신합니다.
SCP란 무엇입니까?
SCP는 BSD 4.2에서 처음 등장한 비대화형 파일 전송 프로그램입니다. 역사적으로 rlogin과 SSH를 사용하여 두 컴퓨터 간에 파일을 전송했습니다. 이로 인해 데이터 전송을 시작하기 위해 원격 호스트에서 명령을 실행했기 때문에 원격 공격이 발생하기 쉽습니다.
SCP의 파일 및 디렉터리 전송은 로컬 시스템과 원격 호스트 또는 두 개의 원격 호스트 사이에서 이루어질 수 있습니다. 이를 통해 다양한 UNIX 유사 배포판으로 작업할 때 더욱 유연해질 수 있습니다.
SCP는 부분 문자열 기준에 따라 여러 파일을 전송하는 데 도움이 되도록 와일드카드 문자와 함께 사용할 수도 있습니다. 직접 전송과 유사하게 이러한 와일드카드를 사용하여 파일 및 디렉터리를 보내고 받을 수도 있습니다.
SFTP란 무엇입니까?
SCP와 달리 SFTP는 FTP 프롬프트 및 원격 셸과 유사하게 작동하는 파일 전송 프로그램입니다. 이는 원격 시스템의 파일 시스템을 탐색하고 해당 내용을 조작할 수 있는 대화형 프롬프트를 제공합니다.
SFTP는 또한 압축이나 공개 키 인증과 같은 여러 SSH 기능을 사용하여 호스트에 연결하고 대화형 모드로 들어갑니다. 따라서 헤드리스 UNIX 시스템을 위한 강력한 원격 파일 시스템 브라우저가 됩니다.
비대화형 인증 방법을 사용하는 경우 SFTP를 사용하여 파일을 자동으로 검색할 수도 있습니다. 그렇지 않으면 성공적인 대화형 인증 후에 해당 정보를 검색합니다.
SCP 대 SFTP: 어느 것이 더 낫습니까?
두 파일 전송 프로그램 사이에는 몇 가지 유사점이 있습니다. 둘 다 TCP 포트 22를 사용하고 SSH에서 실행되므로 보안 측면에서 동일합니다. 또한 두 프로그램 모두 파일 크기 제한이 없으므로 대용량 파일 전송도 지원합니다. 따라서 SCP와 SFTP의 주요 차이점은 사양과 기능에서 확인할 수 있습니다.
기능성
SCP의 핵심 목적은 두 시스템 간에 데이터를 안전하게 복사하는 것입니다. 이는 모든 파일 전송에 대한 소스와 대상을 제공해야 하는 프로그램의 기본 구문에서 분명합니다. 이렇게 하면 간단한 일회성 파일 전송 작업이 더 쉬워집니다.
한편 SFTP는 다중 파일 다운로드와 함께 파일 브라우저를 제공하는 보다 완벽한 파일 전송 클라이언트입니다. 이러한 기능을 통해 SFTP는 원격 호스트와 지속적으로 파일을 전송해야 하는 사용자에게 이상적입니다.
승자 : SFTP
속도
SCP와 SFTP는 모두 SFTP 프로토콜을 사용하여 파일을 암호화하고 전송하므로 두 프로그램은 데이터를 보내거나 받을 때 동일한 원시 전송 속도를 공유합니다. 그러나 전송을 시작하는 것은 다른 이야기입니다.
SCP는 연결의 최대 원시 전송 속도를 달성하는 데 더 빠른 경우가 많은 반면, SFTP는 속도를 “스풀링”하려고 시도할 때 뒤쳐집니다. 또한 SFTP 전송을 시작하려면 프롬프트로 이동하여 FTP 명령을 사용하여 파일을 업로드하고 다운로드해야 합니다.
승자 : SCP
보안
SCP와 SFTP는 모두 기본 전송 계층에 대해 SSH 프로토콜을 사용합니다. 이를 통해 군사급 암호화를 사용하여 네트워크를 통해 데이터를 안전하게 전송할 수 있습니다.
그럼에도 불구하고 SFTP는 전송된 모든 데이터를 디스크에 즉시 쓸 수 있는 -f 플래그를 제공하여 SCP를 제거합니다. 뿐만 아니라 명령줄 인터페이스는 파일의 권한 비트를 업데이트할 수 있는 여러 유틸리티도 제공합니다.
승자 : SFTP
파일 크기
Linux에서 SCP와 SFTP의 최신 버전은 모두 64비트 바이너리입니다. 이는 기본 파일 시스템이 지원하는 한 두 유틸리티 모두 가상적으로 최대 16엑사바이트의 임의 데이터를 지원할 수 있음을 의미합니다.
즉, SCP는 특히 오래된 UNIX 계열 시스템에서 작업할 때 대용량 파일에 여전히 몇 가지 문제를 나타낼 수 있습니다. 이는 주로 한 번에 최대 4GB의 파일만 처리할 수 있는 32비트 버전의 SCP를 실행하는 시스템 때문입니다.
승자 : SFTP
명령줄
SCP는 비대화형이며 명령 스크립트를 읽을 수 없으므로 모든 것을 명령줄에 작성해야 합니다. 그러나 이를 통해 시스템 관리 작업을 자동화할 때 도움이 될 수 있는 더 큰 쉘 스크립트의 일부로 실행될 수도 있습니다.
반면 SFTP는 대화형이므로 파일에서 명령을 읽을 수 있습니다. 이는 자동화에도 유용할 수 있지만 일반 쉘 스크립트와는 다른 명령 세트가 필요하기 때문에 더 복잡할 수 있습니다.
승자 : SCP
파일 전송 재개
SCP는 이 기능을 직접 지원하지 않습니다. 이로 인해 프로그램은 불규칙하고 간헐적인 연결에서 전체 전송을 반복하기 쉽습니다. 한편 SFTP는 플래그가 있는 CLI 프롬프트 와 및 하위 명령을 -a
사용하는 명령줄 클라이언트를 통해 이를 지원합니다 .reget
reput
승자 : SFTP
파일 전송에 SCP 또는 SFTP 중 어느 것을 사용해야 합니까?
유사점과 차이점이 있지만, 어느 하나가 다른 것보다 낫다고 말하는 것은 공평하지 않습니다. 둘 다 파일을 전송하며 SSH에서 실행되는 것과 유사한 보안 기능을 가지고 있습니다. 궁극적으로 귀하가 선택하는 유틸리티는 귀하의 환경 요구 사항에 가장 적합한 것이 무엇인지에 따라 결정됩니다.
SCP 사용 대상
- 두 원격 호스트 간에 단일 파일이나 디렉터리를 전송하려는 경우.
- 네트워크를 통한 데이터 전송을 자동화하려는 경우.
- SFTP를 지원하지 않는 기존 UNIX 계열 시스템으로 작업하는 경우.
다음 용도로 SFTP 사용
- 단일 원격 호스트에서 여러 디렉터리에 걸쳐 여러 파일을 전송하는 경우.
- 새 SSH 세션을 열지 않고 원격 호스트의 파일 시스템과 상호 작용하려는 경우.
- 간헐적인 네트워크 상황에서도 작동할 수 있는 안정적인 파일 전송 프로그램을 원할 때.
이를 염두에 두고 두 시스템 간에 데이터를 전송하는 것은 컴퓨터가 네트워크를 통해 통신하는 방식을 이해하는 첫 번째 단계일 뿐입니다. dig 를 사용하는 실습 DNS 확인 가이드를 통해 Linux 시스템이 데이터를 보낼 위치를 어떻게 아는지 알아보세요 .
이미지 출처: Unsplash를 통한 Alejandro Escamilla . 모든 변경 사항과 스크린샷은 Ramces Red가 작성했습니다.
답글 남기기