2

如何使用密码设置公钥文件和私钥文件。我还需要接受连接 sftp 发送的指纹。我正在使用 Tamir.SharpSsh 源。是否可以将其合并到源代码中?请建议。

4

1 回答 1

2

我已成功使用SSH.NET开源库来处理 SFTP。您可以查看此要点以获取有关创建文件夹、上传等的更多代码。

这是使用密钥文件 + 密码连接到 SFTP 的代码。

    public void Connect(string host, int port, string user, string passPhrase, string privateKeyFilePath) {

        var keyFiles = new[] { new PrivateKeyFile(privateKeyFilePath, passPhrase) };

        var methods = new List<AuthenticationMethod>();
        methods.Add(new PasswordAuthenticationMethod(user, passPhrase));
        methods.Add(new PrivateKeyAuthenticationMethod(user, keyFiles));

        var con = new ConnectionInfo(host, port, user, methods.ToArray());
        var client = new SftpClient(con);
        client.Connect();

        // .....

        client.Disconnect();
    }

私钥文件格式

请注意,您的私钥文件必须是 OpenSSH 格式。如果您在 Notepad++ 中打开密钥文件,它的第一行必须有“BEGIN RSA PRIVATE KEY”。

如果没有,则使用 puttygen 将您的私钥文件转换为 OpenSSH 格式。

  1. 在 puttygen 中打开私钥
  2. 转到转换菜单并选择导出 OpenSSH 密钥。
  3. 将该新密钥保存到文件中并使用它。
于 2017-01-30T09:11:59.027 回答