답변:
간단히 말해서 SCP는 파일 전송에만 사용할 수 있으며 비 대화식입니다 (즉, 모든 것이 명령 줄에 지정되어야 함). SFTP는보다 정교하며 대화식 명령으로 디렉토리 작성, 디렉토리 및 파일 삭제 (물론 시스템 권한에 따라 다름) 등과 같은 작업을 수행 할 수 있습니다.
ForceCommand internal-sftp
. 나는 PermitTTY no
또한 scp 액세스를 방지하지만 sftp 액세스는 허용하지만, 시도 할 때마다 암호를 잘못 입력 할 수 있다고 생각합니다. 그러나 그 두 가지가 sftp를 막아서는 안됩니다. 출처 : 개인적인 경험.
에서 위키 백과 :
SFTP 프로토콜은 파일 전송 만 허용하는 이전 SCP 프로토콜과 비교하여 원격 파일에 대한 다양한 작업을 허용합니다. 이는 원격 파일 시스템 프로토콜과 비슷합니다. SCP 클라이언트와 비교하여 SFTP 클라이언트의 추가 기능에는 전송 중단, 디렉토리 목록 및 원격 파일 제거 재개가 포함됩니다. [1] 이러한 이유로 GUI SCP 클라이언트에 비해 GUI SFTP 클라이언트를 구현하는 것이 비교적 간단합니다.
과
SCP와 SFTP가 동일한 일반 수준의 오버 헤드로 파일을 전송하는 동안 동일한 SSH 암호화를 사용하지만 SCP는 일반적으로 파일을 전송할 때 특히 대기 시간이 긴 네트워크에서 SFTP보다 훨씬 빠릅니다. 이는 SCP가 패킷 확인을 기다릴 필요가없는보다 효율적인 전송 알고리즘을 구현하기 때문에 발생합니다. 이로 인해 속도가 빨라지지만 전송을 방해 할 수 없으므로 SFTP와 달리 세션을 종료하지 않고 SCP 전송을 취소 할 수 없습니다.
순전히 커맨드 라인 관점에서 :
두 명령의 또 다른 중요한 차이점은 sftp 가 단일 명령 줄을 사용하여 로컬 파일을 원격 위치에 넣을 수는 없지만 원격 파일을 가져올 수는 있지만 scp 는 두 가지를 모두 수행 할 수 있다는 것 입니다.
sftp user@host:/path/to/remote.file [/path/to/local.file]
scp user@host:/path/to/remote.file [/path/to/local.file]
scp /path/to/local.file user@host:[/path/to/remote.file]
sftp {user}@{host}:{remote_dir} <<< $'put {local_file_path}'
SSH ( S A. 안전한의 SH의 엘)은 원격 로그인 및 다른 네트워크 서비스는 보안되지 않은 네트워크를 통해 안전하게 작동 할 수 있도록 암호화 네트워크 프로토콜이다.
차이점 : SFTP는 대화식 모드 (세션)에서 작동하고 SCP는 비대화 식에서 작동합니다. SFTP를 사용하여 파일 작성, 삭제 및 나열과 같은 원격 파일 시스템에 액세스 할 수 있습니다.
유사점 : 두 SCP ( S의 A. 안전한 데이 C의 opy의 P의 rotocol) 및 SFTP ( S SH F ILE의 T 를 ransfer의 P의 rotocol)는 네트워크에 호스트 사이의 파일 관리를 지원하는 네트워크 프로토콜입니다. 둘 다 SSH를 사용합니다.
두 프로토콜의 대부분의 차이점은 다른 답변에서 이미 언급되었으며 https://unix.stackexchange.com/q/8707/19088 에서 더 자세하게 설명되어 있습니다.
curl 문서에 따르면 또 다른 차이점 은 SCP 프로토콜이 이식성이 떨어지고 일반적으로 Unix 시스템에서만 작동한다는 것입니다.
그런데 curl 은 두 프로토콜을 모두 구현하며 기본 OpenSSH SFTP 클라이언트 구현과 달리 SFTP와 SCP 모두에 대해 비 대화식 입니다.
또한 SCP 또는 SFTP없이 SSH를 통해 파일을 전송할 수 있는 FISH 프로토콜 도 있습니다. 내가 아는 한 FISH는 널리 사용되지는 않지만 현재는 몇 가지 파일 관리자 ( 미드 나이트 커맨더 및 KDE 기반의 일부)와 Lftp에서만 구현 됩니다.