문제

Sharpssh를 사용하여 안전한 FTP 연결을 만드는 데 어려움이 있습니다. 지금까지 나는 DOS 명령 줄 앱 Moveit을 자유롭게 사용하여 연결을 만들었으며 잘 연결됩니다.

C:\> ftps -user:ABC -password:123 xxx.xxx.xxx.mil

그러나 SharpSsh와 동일한 작업을 수행하려고 할 때 연결 시간이 초과되거나 서버가 올바르게 응답하지 않았다는 오류가 발생합니다.

Dim sftp = New Tamir.SharpSsh.Sftp("xxx.xxx.xxx.mil", "ABC", "123")
sftp.Connect()

또는

Dim host = New Tamir.SharpSsh.SshStream("xxx.xxx.xxx.mil", "ABC", "123")

내가 무엇을 잘못하고 있는지, 어떻게 실패했는지 알아낼 수있는 방법은 무엇입니까?

안전한 FTP 연결이 필요하므로 .NET 클래스는 옵션이 아닙니다. 나는 Sharpssh에 대한 대안이 존재한다면 기꺼이 시도 할 의향이 있습니다.

도움이 되었습니까?

해결책

SSH 라이브러리 인 Tamir.sharpssh를 사용하고 있습니다. 그러나 FTPS (또는 FTP/SSL) 서버에 연결하는 것처럼 보입니다. FTP는 완전히 다른 프로토콜이며 SFTP 나 SSH와 공통적 인 것이 없습니다.

당사 웹 사이트의 다음 페이지는 FTP, FTP/SSL, FTPS 및 SFTP 프로토콜의 차이점에 대해 설명합니다. Rebex.net/secure-ftp.net/.

간단한 요약은 다음과 같습니다.

  • FTP 일반, 구식, 불안한 파일 전송 프로토콜. 네트워크를 통해 클리어 텍스트 비밀번호를 전송합니다.

  • FTPS -FTP TLS/SSL 암호화 채널을 통한 FTP. FTP 및 FTPS 관계는 HTTP 및 HTTPS와 유사합니다.

  • FTP/SSL- FTPS와 동일합니다

  • SFTP -SSH 파일 전송 프로토콜. FTP에 공통적 인 것이 없습니다 (이름을 기대). SSH 암호화 된 통신 채널을 통해 실행됩니다.

  • Secure FTP- SFTP 또는 FTPS :-(

당신은 시도 할 수 있습니다 Rebex 파일 전송 팩 SFTP 및 FTPS 프로토콜을 모두 지원하는 구성 요소 (그러나 SharpSSH와 달리 비용이 많이 듭니다).

FTP/SSL 서버에 대한 연결은 다음과 같습니다.

' Create an instance of the Ftp class. 
Dim ftp As New Ftp()

' Connect securely using explicit SSL. 
' Use the third argument to specify additional SSL parameters. 
ftp.Connect(hostname, 21, Nothing, FtpSecurity.Explicit)

' Connection is protected now, we can log in safely. 
ftp.Login(username, password)

다른 팁

또 다른 위대한 대안 (무료는 아님)입니다 edtftpnet/pro, .NET에서 FTP (및 SFTP)를 완전히 지원하는 안정되고 성숙한 라이브러리.

연결을위한 몇 가지 샘플 코드는 다음과 같습니다.

   SecureFTPConnection ftpConnection = new SecureFTPConnection();

   // setting server address and credentials
   ftpConnection.ServerAddress = "xxx.xxx.xxx.mil";
   ftpConnection.UserName = "ABC";
   ftpConnection.Password = "123";

   // select explicit FTPS
   ftpConnection.Protocol = FileTransferProtocol.FTPSExplicit;

   // switch off server validation (only do this when testing)
   ftpConnection.ServerValidation = SecureFTPServerValidationType.None;

   // connect to server
   ftpConnection.Connect();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top