sharpssh - 如何通过 C# SharpSsh 代码隐藏使用公钥和带密码的私钥文件连接 SFTP

标签 sharpssh

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

最佳答案

我已成功使用 SSH.NET与 SFTP 配合使用的开源库。您可以看到this gist有关创建文件夹、上传等的更多代码。

这是使用 key 文件 + 密码连接到 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++ 中打开 key 文件,第一行必须有“BEGIN RSA PRIVATE KEY”。

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

  1. 在puttygen中打开私钥
  2. 转至“转换”菜单并选择“导出 OpenSSH key ”。
  3. 将新 key 保存到文件中并使用它。

关于sharpssh - 如何通过 C# SharpSsh 代码隐藏使用公钥和带密码的私钥文件连接 SFTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22805395/

相关文章:

c# - JSch 和 sharpSSH 的主要文件格式是什么?

c# - 并发连接期间的 Sharpssh "session is down"

c# - 下载多个文件 sharpSSH

c# - 如何使用 SharpSSH 或 SSH.NET 库在 SFTP 服务器上附加文本文件

c# - 使用 SharpSsh 在 ssh 中发送类似 Ctrl+A 的 key

c# - 使用C#程序通过SFTP远程删除文件

c# - 使用 SharpSSH 从 SFTP 服务器下载文件?

.net - 从 SharpSSH 流式传输文件