【发布时间】:2012-09-06 15:22:33
【问题描述】:
我获得了 SFTP 服务器的连接详细信息,使用 FileZilla 连接到它,然后从该 SFTP 成功下载了一个文件。
我知道的唯一详细信息是主机、端口、用户和密码。
现在我正在尝试通过 WinSCP .NET 程序集 (C#) 连接到同一台服务器
using(Session session = new WinSCP.Session()) {
session.Open(new SessionOptions() {
Protocol = Protocol.,
HostName = "ftp.*********.be",
UserName ="*****",
Password ="*****"
});
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = WinSCP.TransferMode.Binary;
TransferOperationResult transferResult;
transferResult = session.GetFiles("/downld/fileonserver.dbf",@"c:\testfolder\localfilename.dbf", false, transferOptions);
无论我在这里尝试什么,它都会一直要求 SSH 的密钥,但我没有那个密钥,我在网上某处生成了一个 128 位 RSA 密钥并将其放入会话选项中,例如:
SshHostKeyFingerprint = "ssh-rsa 1024 82:09:12:b4:93:92:3a:61:10:90:61:12:b4:XX:XX:XX"
但这只是告诉我密钥无效。
我发现我可能需要来自服务器的公共/私有 SSH 密钥才能使其工作,但遗憾的是我无法访问该服务器。
既然 FileZilla 可以在我不输入任何 KEYS 的情况下连接到它,为什么我的 C# 程序不能这样做?
在涉及安全相关问题时,我不是专家,所以请指出正确的方向。我找到了this thread,但我无权访问 FTP 服务器上的.ssh 文件夹,而且我真的不知道他们的用途。
【问题讨论】:
-
我建议你至少学习一些关于 SSH 身份验证和密钥的基础知识,因为你一味地尝试做的既是无意义的又是安全风险。
标签: sftp public-key filezilla winscp winscp-net