Не удается подключить SharpSSH через FTP - PullRequest
0 голосов
/ 26 мая 2009

У меня проблемы с установлением безопасного FTP-соединения с использованием SharpSSH. До сих пор я использовал приложение командной строки DOS MOVEit Free, чтобы установить соединение, и оно подключается нормально:

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, если они существуют.

Ответы [ 2 ]

2 голосов
/ 04 июня 2009

Другая отличная альтернатива (также не бесплатная) - это edtFTPnet / PRO , стабильная, зрелая библиотека, которая предлагает полную поддержку FTPS (и SFTP) в .NET.

Вот пример кода для подключения:

   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();
2 голосов
/ 28 мая 2009

вы используете Tamir.SharpSsh, который является библиотекой SSH. Однако похоже, что вы подключаетесь к серверу FTPS (или FTP / SSL). FTPS - совершенно другой протокол и не имеет ничего общего ни с SFTP, ни с SSH.

На следующей странице нашего сайта обсуждаются различия между протоколами FTP, FTP / SSL, FTPS и SFTP: rebex.net / secure-ftp.net / .

Краткое резюме следующим образом:

  • FTP обычный, старый, небезопасный протокол передачи файлов. Передача открытого текстового пароля по сети.

  • FTPS - FTP через TLS / SSL, зашифрованный канал. FTP и FTPS взаимосвязь похож на HTTP и HTTPS.

  • FTP / SSL - так же, как FTPS

  • SFTP - протокол передачи файлов SSH. Не имеет ничего общего с FTP (за исключением имени). Работает по зашифрованному каналу связи SSH.

  • Безопасный FTP - может быть SFTP или FTPS: - (

Вы можете попробовать Rebex File Transfer Pack компонент, который поддерживает протоколы 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)
...