【问题标题】:Why does FileZilla work without knowing any keys, but WinSCP doesn't?为什么 FileZilla 可以在不知道任何密钥的情况下工作,而 WinSCP 却不行?
【发布时间】: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


【解决方案1】:
  1. 您将 SSH 服务器公钥验证与客户端公钥验证混淆了。这是两个完全不同的东西。这首先涉及服务器的公钥,而后者涉及您的帐户公钥。

    Read about SSH Key Pairs 了解差异。

  2. FileZilla 无法在不验证服务器的公共主机密钥的情况下进行连接。在第一次连接时,它总是提示您接受密钥。完成后,它会选择性地缓存密钥并且不会再次提示您,除非密钥更改。

    您可能忘记了您之前收到过此提示,或者之前有人从您的机器连接到服务器。

    任何 SSH (SFTP) 客户端都必须这样做。如果您没有验证服务器的主机密钥,您将失去任何安全性。

  3. 您应该从服务器管理员那里获取主机密钥指纹。

    如果你没有,你可以在 WinSCP Server and Protocol information dialog 上看到它。

    有关详细信息,请参阅 WinSCP 常见问题解答Where do I get SSH host key fingerprint to authorize the server?

【讨论】:

    【解决方案2】:

    我通过将返回到 FileZilla 客户端的 SSH 密钥复制到我的 C# 应用程序中解决了这个问题。我不知道这是否是正确的做法,但至少它让我的解决方案现在可以工作了。

    它也是一个 SSH-DSS 密钥 2048 密钥而不是 SSH-RSA 1024,这就是我猜想弄乱密钥总是失败的原因。

    【讨论】:

    猜你喜欢
    • 2018-09-05
    • 2021-11-14
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    相关资源
    最近更新 更多