Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用VB.NET和SSH.NET连接到SSH/SFTP服务器–;但是WinSCP和FileZilla可以连接_.net_Vb.net_Ssh_Sftp_Ssh.net - Fatal编程技术网

无法使用VB.NET和SSH.NET连接到SSH/SFTP服务器–;但是WinSCP和FileZilla可以连接

无法使用VB.NET和SSH.NET连接到SSH/SFTP服务器–;但是WinSCP和FileZilla可以连接,.net,vb.net,ssh,sftp,ssh.net,.net,Vb.net,Ssh,Sftp,Ssh.net,多年来,下面的代码一直有效。然后在4月11日它停止了。我注意到Visual Studio中有一条警告,说SSH.NET包已过时,所以我更新了包。。。还是不行 Protected Sub FTPUpload(ByVal fileToBeUploaded As String, uploadedFilename As String) Try Using sftp As New SftpClient(sFtpServer, sFtpCreditUser, sFtpCreditPW

多年来,下面的代码一直有效。然后在4月11日它停止了。我注意到Visual Studio中有一条警告,说SSH.NET包已过时,所以我更新了包。。。还是不行

Protected Sub FTPUpload(ByVal fileToBeUploaded As String, uploadedFilename As String)
    Try
        Using sftp As New SftpClient(sFtpServer, sFtpCreditUser, sFtpCreditPW)
            sftp.Connect()
            Dim upFile As Stream = File.OpenRead(fileToBeUploaded)
            sftp.UploadFile(upFile, uploadedFilename)
            upFile.Close()
            sftp.Disconnect()
        End Using
    Catch ex As Exception
        MsgBox(ex.Message & Chr(13) & Chr(10) & uploadedFilename)
    End Try
End Sub 

引发异常:

Renci.SshNet.dll中的Renci.SshNet.Common.SshConnectionException Renci.SshNet.Common.SshConnectionException:主机中的软件中止了已建立的连接。
在Renci.SshNet.Session.WaitHandle(WaitHandle-WaitHandle)
在Renci.SshNet.Session.Connect()上 位于Renci.SshNet.BaseClient.Connect()
在C:\Data\vb.net\InvManager2.3\InvManager\Main.vb中的InvManager.Main.FTPUpload(字符串文件tobeuploaded,字符串上传文件名):第562行

已验证凭据在服务器端仍然有效

FileZilla日志,显示从运行主体VB代码的同一Windows框到服务器的SFTP连接:

状态:正在连接到server.com。。。
响应:fzSftp已启动,协议_版本=8
命令:打开“user@server.com" 22  
命令:通过:******
状态:已连接到server.com
状态:正在检索目录列表。。。
命令:pwd
响应:当前目录为:“/home/server”
命令:ls
状态:正在列出目录/home/server
状态:“/home/server”目录列表成功
状态:已断开与服务器的连接

如果您能帮我把这段代码恢复正常,我将不胜感激。

原来的代码再也不能正常工作了。。。仍然不确定是什么改变了ssh.net,破坏了代码。但是per@MartinPrikryl我重新编写了使用WinSCP库而不是SSH.Net的代码,下面的代码让我们重新开始工作

Protected Sub WinScpSFTPupload(ByVal fileToBeUploaded As String, uploadedFilename As String)
        Try
            Dim sessionOptions As New SessionOptions
            With sessionOptions
                .Protocol = Protocol.Sftp
                .HostName = sFtpServer
                .UserName = sFtpCreditUser
                .Password = sFtpCreditPW
                .GiveUpSecurityAndAcceptAnySshHostKey = True
            End With
            Using session As New Session
                session.Open(sessionOptions)
                session.PutFiles(fileToBeUploaded, uploadedFilename).Check()
            End Using
        Catch ex As Exception
            MsgBox(ex.Message & Chr(13) & Chr(10) & uploadedFilename)
        End Try
    End Sub ' Sub to WinSCP SFTP File

很难像调试SSH.NET库那样进行调试。尝试找出SSH服务器配置中是否有任何更改。很可能是服务器更改了允许的密码集和其他算法,这使得它与SSH.NET不兼容

您还可以尝试在其基础上构建SSH.NET,并添加一些日志记录/调试,以了解它关闭连接的原因


除此之外,您应该能够通过切换到解决此问题,因为WinSCP适合您。如果您的代码像您的问题一样简单,那么切换就很简单了