我获得了 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# 程序不能这样做呢?
在涉及安全相关的事情时,我不是专家,所以请指出我正确的方向。我找到了这个线程,但我无权访问.ssh
FTP 服务器上的文件夹,而且我真的不知道他们在做什么。