我是新来的sftp,我试图让一个c#程序通过sftp发送一个文件到一个不受我控制的远程服务器。ssh.net sftp坏包长度/打开SSH版本2 RSA?
使用如下代码:
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质疑How to resolve a 'Bad packet length' error in SSH.NET?有一个链接到sshnet.codeplex讨论,其中删除您不想解决这个问题对于海报的加密密钥。
我可以看到ssh.net的connectioninfo类16项,但没有一个国家开放SSH版本2 RSA虽然他们中的一个很可能是(我试着用搜索引擎)。
我已经试过ip,名字和密码,我已经与filezilla给出,我连接没有问题;所以filezilla以某种方式使用正确的加密;我不知道如何说出它的用途。
帮助?
Andrew
什么是FTPPassword的类型?它可能会为ctor使用错误的超载。另外,您确定远程服务器接受用户名/密码验证而不是公用密钥验证吗? – 2013-03-11 01:10:29
所有字符串;但如果这是超载的问题,它会错误的建设,而不是连接?至于远程服务器,当我将该IP,用户名和密码放入filezilla时,它会成功连接,然后我可以传输文件。 – andrew 2013-03-11 01:51:19