代码之家  ›  专栏  ›  技术社区  ›  Suvasish Sarker

C中SshNet的SshConnectionException#

  •  3
  • Suvasish Sarker  · 技术社区  · 7 年前

    我可以使用相同的凭据从WinScp正确连接到该服务器。

    不确定这里出了什么问题。有什么想法/建议吗?

    密码

    using (var client = new ScpClient(Config.UnixServer, Config.UnixUsername, Config.UnixPassword))
    {
        client.Connect();
        client.Upload(new FileInfo(fileUpload), fileName);
        client.Disconnect();
    }
    

    Renci.SshNet.Common.SshConnectionException : Client not connected.
    at Renci.SshNet.Session.WaitOnHandle(WaitHandle waitHandle)
    at Renci.SshNet.Session.Connect()
    at Renci.SshNet.BaseClient.Connect()
    

    WinSCP Session Log

    4 回复  |  直到 7 年前
        1
  •  3
  •   Alejandro C De Baca    6 年前

    会话日志显示WinSCP正在使用sftp协议(WinSCP同时支持scp和sftp协议)。并非所有sftp服务器都将接受scp连接。切换到 SftpClient 类并使用 UploadFile 方法

    我还怀疑你是想打电话 OpenRead() FileInfo

    using (var client = new SftpClient(Config.UnixServer, Config.UnixUsername, Config.UnixPassword))
    {
        client.Connect();
        client.UploadFile(new FileInfo(fileUpload).OpenRead(), fileName);
        client.Disconnect();
    }
    
        2
  •  0
  •   trwk    6 年前

    也许这有帮助?

    可能与unix路径有关?检查 client.RemotePathTransformation = RemotePathTransformation.ShellQuote ;

    here

    默认情况下,SSH。NET应用了一种简单的远程引用机制 在将其传递到远程服务器上的scp命令之前使用双引号 主办

        3
  •  0
  •   Mike Brake    6 年前

    github页面: https://github.com/sshnet/SSH.NET

    我遇到的另一个问题是,服务器有一个IP地址的白名单,并且服务器在上面,但我的测试环境没有。

    @李,正如Martin所指出的那样,执行连接的应用程序的日志对解决这类问题最有帮助。

        4
  •  0
  •   Lee    6 年前

    更新Renci参考库将解决这些问题。