从 SFTP 访问我的远程服务器时,我不断收到此错误
连接已意外关闭。服务器发送命令退出状态 0
我在 WinSCP 中填写了相同的凭据,它工作正常。我缺什么地方?此外,我在项目 UI 的密钥文件列中使用“ssh-rsa 1024 ######################”代替 .ppk 文件。
谢谢你,
普拉内
从 SFTP 访问我的远程服务器时,我不断收到此错误
连接已意外关闭。服务器发送命令退出状态 0
我在 WinSCP 中填写了相同的凭据,它工作正常。我缺什么地方?此外,我在项目 UI 的密钥文件列中使用“ssh-rsa 1024 ######################”代替 .ppk 文件。
谢谢你,
普拉内
如果您可以使用 WinSCP GUI 连接,但不能使用 .NET 程序集,则在同一环境(计算机)中运行两者时,您很可能错过了一些设置(如端口号或主机密钥指纹,如其他答案所示) .
最简单的解决方案是让WinSCP GUI根据其工作设置为您生成代码模板。
如果您在另一台机器上运行代码,请查看 WinSCP 常见问题解答为什么 WinSCP 不能在新环境(操作系统、机器、用户帐户、网络)中运行,而它已经在不同的环境中为我工作?
虽然这篇文章没有明确讨论 .NET 程序集,但总体上是关于 WinSCP,但它也涵盖了您在使用程序集时可能遇到的问题。
对于上述问题,我发现在尝试“打开会话”即 session.Open(sessionOptions) 时,它会通过异常,因为服务器没有对其进行身份验证。
因为我的任务是“无密码登录winscp”,即我必须提供:- 1.“.ppk”文件,即“puTTy 私钥”。2.它的“ssh key指纹”。
经过一整天的调试,终于发现我的winsscp.dll版本太旧了,因此没有为我提供[元数据] inbuild属性为1.SshPrivateKeyPath - >我们的“.ppk”文件的位置。2. SshHostKeyFingerprint 3. passphrase -> 仅限一次登录。
通过更新新版本及更高版本,我现在可以打开会话,没有任何错误。
谢谢你。
当我第一次尝试执行以下链接中提到的代码时,我也遇到了同样的问题。
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"
};