我是 sftp 的新手,我正在尝试让 ac# 程序通过 sftp 将文件发送到不受我控制的远程服务器。
使用如下代码:
using (var sftp = new SftpClient(FTPAddress, FTPName, FTPPassword))
{
ConnectionInfo myCI = sftp.ConnectionInfo;
sftp.Connect(); // <<<< Exception on connect
sftp.UploadFile(sftp_ms, FileName,true);
sftp.Disconnect();
}
我收到“错误的数据包长度”异常。
谷歌搜索显示错误的数据包长度可能是加密格式不匹配,但我不知道如何解决。
我从客户那里收到的规格是:
Keys must be in Open SSH version 2 format RSA format
我不知道该怎么做。以前的 SO 问题如何解决 SSH.NET 中的“错误数据包长度”错误?有一个指向 sshnet.codeplex 讨论的链接,其中删除您不想要的加密密钥可以解决该海报的问题。
我可以在 ssh.net 的 connectioninfo 类中看到 16 个条目,但它们都没有声明打开 SSH 版本 2 RSA,尽管其中一个很可能是(我尝试过谷歌搜索)。
我已经尝试过使用 filezilla 提供的 IP、名称和密码,并且连接没有问题;所以filezilla以某种方式使用了正确的加密;我不知道如何判断它在使用什么。
帮助 ?
安德鲁