SFTP SSH.NET DLL instead of SharpSSH

billybob picture billybob · Aug 2, 2012 · Viewed 23k times · Source

I was seeking for a free DLL for .net to handle SFTP connections.

I found out this project SharpSSH, but it lacks of documentation.

I spent a lot of time to figure how the dll works. I created a test project and I started to test different functions. Some functions are working such as deleting files.

I have a problem with putfile() function and getfile().

Here an example :

Dim ssh As SFTPUtil
ssh = New SFTPUtil("MY SERVER", "MY USER", "MY PW")
ssh.GetFile("/home/sftptest/test111.xml", "C:\\text.xml")

Note that the getfile() parameters are:

Public Sub GetFile(remotePath As String, localPath As String)

I step in the functions, but I didn't get the correct way to pass those parameters.

I dont really know if i should use slashes(/) or backslashes (). I know that Linux uses (/)

I noticed for example that the "C:\" has been transformed to "C:\\".

Just to mention that the SFTP is on a linux machine.

thank you.

Answer

billybob picture billybob · Aug 3, 2012

Here's What I should have done (vb.net code) to establish the connection with THIS library (SSHnet), I did not use SharpSHH:

Private Sub ButtonAction_Click(sender As Object, e As System.EventArgs) Handles ButtonAction.Click

    Dim PasswordConnection = New PasswordAuthenticationMethod("test", "test")
    Dim KeyboardInteractive = New KeyboardInteractiveAuthenticationMethod("test")
    Dim ConnectionInfo = New ConnectionInfo("192.168.1.1", 22, "test", PasswordConnection, KeyboardInteractive)

    AddHandler KeyboardInteractive.AuthenticationPrompt, _
    Sub(_sender As Object, _e As Renci.SshNet.Common.AuthenticationPromptEventArgs)
        For Each prompt In _e.Prompts
            Debug.Print(prompt.Request)
            If Not prompt.Request.IndexOf("Password:", StringComparison.InvariantCultureIgnoreCase) = -1 Then
                prompt.Response = "test"
            End If
        Next
    End Sub

    sftp = New SftpClient(ConnectionInfo)
    sftp.Connect()

    sftp.disconnect()
End Sub