문제

C# SSH 파일 전송 프로토콜 (SFTP)에서 SFTP 클라이언트를 찾고있는 동안이 두 가지 적합한 프로젝트를 발견했습니다. 하나 그리고 .

기본 사항을 이해하려고 노력하는 동안 나는이 혼란스러운 것을 발견했다 위키 백과 기사. SSH를 통한 SFTP와 FTP의 차이점은 무엇입니까? 도서관은 다른 경우 "FTP Over SSH"를 지원하지 않는 것 같습니다.

도움이 되었습니까?

해결책

차이점은 다음과 같습니다.

  • SFTP (SSH 파일 전송 프로토콜)은 파일 전송 및 조작 기능을 제공하는 프로토콜입니다. 신뢰할 수있는 데이터 스트림에서 작동 할 수 있지만 일반적으로 SSH와 함께 사용됩니다.
  • "FTP Over SSH"는 일반 기존 FTP 프로토콜을 사용하지만 SSH 터널 클라이언트와 서버 사이에 배치됩니다.

일반적으로 터널이 SSH 명령을 실행하여 설정되기 때문에 "FTP Over SSH"에 대한 라이브러리를 찾을 수 없을 것입니다. 일단 설정되면 클라이언트와 서버는 터널에 대해 알 필요가 없습니다. 그들은 단지 포트를 열고 터널없이 원하는 방식으로 데이터를 전송합니다.

BTW, 또 다른 옵션이 될 수 있습니다 SSL 이상의 FTP (FTPS), .NET에서 지원합니다. (보다 http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.enabressl.aspx.)

다른 팁

기본적으로 다음과 같은 파일 전송 프로토콜이 있습니다.

  • FTP - 1970 년대 이후에 있었던 평범한 오래된 FTP 프로토콜. 약어는 "파일 전송 프로토콜"을 나타냅니다. 일반적으로 TCP 포트 21을 통해 실행됩니다.

  • SFTP - FTP와 관련이없는 완전히 다른 파일 전송 프로토콜. SFTP는 일반적으로 TCP 포트 22에서 SSH 세션을 진행합니다. 1990 년대 후반 이후에있었습니다. 약어는 실제로 "SSH 파일 전송 프로토콜"을 나타냅니다.

  • FTP Over SSH -1) 가능하지만 SSH 채널을 통해 터널링 된 FTP 프로토콜의 극히 드문 예) SFTP가 잘못 명명되었습니다.

(자세한 내용은 "보안 FTP, FTP/SSL, SFTP, FTPS, FTP, SCP ... 차이점은 무엇입니까?"페이지에서 Rebex)

면책 조항 : 나는 Rebex를 위해 일합니다

SFTP는 실제로 SSH를 통해 실행되는 또 다른 프로토콜입니다. 원하는 경우 SSH의 확장입니다. 사람들은 SSH를 통해 FTP를 터널링하는 대신 SFTP를 사용하는 경향이 있습니다.

.NET에서 포괄적 인 SFTP 지원을 위해 edtftpnet/pro. 다양한 SFTP 서버를 지원하는 데 오랜 시간이 걸렸습니다.

SFTP는 자체 프로토콜입니다. SSH를 통해 연결되면 FTP Over SSH는 FTP를 사용합니다.

SSH의 FTP는 SSH를 통해 터널링 된 일반 FTP 프로토콜입니다. SFTP는 SSH가 제공하는 파일 전송 메커니즘이며 완전히 다른 프로토콜입니다. 나는 SSH를 통해 FTP를 사용하는 사람을 보지 못했습니다.

  • SFTP는 SSH 파일 전송 프로토콜을 나타냅니다. SSL보다 FTP가 아니며 SSH보다 FTP가 아닙니다. SFTP는 RFC 4253에서 표준화됩니다.
  • FTP는 RFC 959 및 후자의 추가로 정의되는 파일 전송 프로토콜을 나타냅니다. FTP는 매우 인기가 있지만 안전하지는 않습니다. 따라서 SSL에 대한 FTP가 소개되었으며 FTP 또는 FTP/SSL이라고합니다.

인증의 경우 SFTP를 위해 SSH 키를 사용하고 FTP는 X.509 인증서를 사용합니다.

나는 몇 년 동안 Sharpssh를 사용했고 그것은 훌륭하게 작동합니다. 잠시 동안 어떤 개발도 보지 못했지만 소스 코드는 이해하고 작업하기 쉽습니다. 나는 조정을하고 문제없이 내 프로젝트를 위해 그것을 다시 고환했지만, 그것은 그 중 어느 것도 필요없이 잘 작동합니다.

멋진 일을 할 필요가 없다면, 매우 최소한의 코드로 Putty의 psftp.exe 클라이언트에 대해 자신의 .NET 래퍼를 작성할 수도 있습니다.

나는 Greg Finzer의 SFTP 라이브러리를 사용한 적이 없지만, 적극적으로 개발되고 강력한 무언가가 필요하다면 품질이 좋은 제품을 가지고 있다고 개인적으로 믿고 믿습니다. 그러나 간단한 것들에 대해서는 내가 언급 한 무료 옵션으로 큰 성공을 거두었습니다.

방금 만들었습니다 .NET SFTP 라이브러리. 내가 그 과정에서 배운 것 중 하나는 FTP가 SFTP와 어떻게 다른지입니다. 실제로 FTP 서버 대신 SSH 서버와 통신하고 있습니다. 프로토콜뿐만 아니라 명령은 SSH 서버로 전송하는 것과는 완전히 다릅니다.

여기에 있습니다 링크 내 도서관에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top