5

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

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

我在 WinSCP 中填写了相同的凭据,它工作正常。我缺什么地方?此外,我在项目 UI 的密钥文件列中使用“ssh-rsa 1024 ######################”代替 .ppk 文件。

谢谢你,
普拉内

4

3 回答 3

1

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

最简单的解决方案是让WinSCP GUI根据其工作设置为您生成代码模板。

在此处输入图像描述


如果您在另一台机器上运行代码,请查看 WinSCP 常见问题解答为什么 WinSCP 不能在新环境(操作系统、机器、用户帐户、网络)中运行,而它已经在不同的环境中为我工作?

虽然这篇文章没有明确讨论 .NET 程序集,但总体上是关于 WinSCP,但它也涵盖了您在使用程序集时可能遇到的问题。

于 2018-02-20T09:27:43.890 回答
1

对于上述问题,我发现在尝试“打开会话”即 session.Open(sessionOptions) 时,它会通过异常,因为服务器没有对其进行身份验证。

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

经过一整天的调试,终于发现我的winsscp.dll版本太旧了,因此没有为我提供[元数据] inbuild属性为1.SshPrivateKeyPath - >我们的“.ppk”文件的位置。2. SshHostKeyFingerprint 3. passphrase -> 仅限一次登录。

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

谢谢你。

于 2015-11-27T06:18:44.803 回答
1

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

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

谷歌搜索了很多,但我找不到任何解决方案。

最后,我意识到我在示例中缺少端口号

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

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"
};
于 2017-06-22T11:10:14.607 回答