The handshake failed due to an unexpected packet format
Most likely your FTP server requires explicit SSL. So first try to connect without SSL:
// C# client.Connect("ftp.example.org");
' VB.NET client.Connect("ftp.example.org")
Then, before logging-in, start explicit SSL negotiation:
// C# client.AuthSSL();
' VB.NET client.AuthSSL()
Now, your connection is secured.
Remember that you can ignore SSL certificate errors using ServerCertificateValidate event:
// C# version using (Ftp client = new Ftp()) { // Use this line to validate self-signed certificates: client.ServerCertificateValidate += ValidateCertificate; client.Connect("ftp.example.org"); client.AuthSSL(); client.Login("username", "password"); foreach (FtpItem item in client.GetList()) { if (item.IsFolder == true) Console.WriteLine("[{0}]", item.Name); else Console.WriteLine("{0}", item.Name); } client.Close(); } private static void ValidateCertificate( object sender, ServerCertificateValidateEventArgs e) { const SslPolicyErrors ignoredErrors = SslPolicyErrors.RemoteCertificateChainErrors | SslPolicyErrors.RemoteCertificateNameMismatch; if ((e.SslPolicyErrors & ~ignoredErrors) == SslPolicyErrors.None) { e.IsValid = true; return; } e.IsValid = false; }
' VB.NET version Using client As New Ftp() ' Use this line to validate self-signed certificates: AddHandler client.ServerCertificateValidate, AddressOf ValidateCerificate client.Connect("ftp.example.org") client.AuthSSL() client.Login("username", "password") For Each item As FtpItem In client.GetList() If item.IsFolder = True Then Console.WriteLine("[{0}]", item.Name) Else Console.WriteLine("{0}", item.Name) End If Next client.Close() End Using Private Sub ValidateCerificate( _ ByVal sender As Object, _ ByVal e As ServerCertificateValidateEventArgs) Const ignoredErrors As SslPolicyErrors = _ SslPolicyErrors.RemoteCertificateChainErrors Or _ SslPolicyErrors.RemoteCertificateNameMismatch If (e.SslPolicyErrors And Not ignoredErrors) = SslPolicyErrors.None Then e.IsValid = True Return End If e.IsValid = False End Sub