WinSCP SFTP连接错误

时间:2015-11-24 12:31:50

标签: c# .net sftp winscp winscp-net

从SFTP访问我的远程服务器时,我不断收到此错误

  

连接意外关闭。服务器发送命令退出状态0

我在WinSCP中填写了相同的凭据,它运行正常。我缺少哪里? 另外,我在项目用户界面的密钥文件列中使用“ssh-rsa 1024 #######################”代替.ppk文件。

谢谢你,
Pranay

3 个答案:

答案 0 :(得分:1)

对于上面的问题,我发现在尝试打开会话时#34;即session.Open(sessionOptions),它将通过异常,因为服务器没有验证它。

我的任务是"密码少winscp登录",即我必须提供: - 1" .ppk"文件是" puTTy私钥"。 2.它的" ssh密钥指纹"。

经过一整天的调试,终于发现我的winsscp.dll版本已经老了,因此没有为我提供[metadata] inbuild属性 1. SshPrivateKeyPath - >我们" .ppk"的位置文件。 2. SshHostKeyFingerprint 密码短语 - >只登录一次。

通过更新新版本及以上版本,我可以打开会话,没有任何错误。

谢谢。

答案 1 :(得分:1)

当我第一次尝试执行以下链接中提到的代码时,我也遇到了同样的问题。

https://winscp.net/eng/docs/library#example

用Google搜索了很多内容,但我找不到任何相同的解决方案。

最后,下面我重申了我在示例中错过了端口号

将端口号字段添加到我的代码中解决了这个问题。

SessionOptions sessionOptions = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = "11.22.33.44",
    PortNumber = 2222, /* This is cause of the issue i was facing*/
    UserName = "abcdef",
    Password = "ghijklmnop",
    SshHostKeyFingerprint = "ssh-rsa 2048 aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn:oo:pp"
};

答案 2 :(得分:1)

如果您可以使用WinSCP GUI连接,但不能与.NET程序集连接,则在同一环境(计算机)中运行时,您很可能错过了一些设置(如端口号或主机密钥指纹,另一个答案显示)。

最简单的解决方案是根据工作设置为您提供WinSCP GUI generate a code template

enter image description here

如果您在其他计算机上运行代码,请查看WinSCP常见问题Why does WinSCP not work in a new environment (operating system, machine, user account, network), when it works for me in a different environment already?

虽然文章没有明确关于.NET程序集,但是关于WinSCP,但它也涵盖了程序集可能遇到的问题。