小编sci*_*ino的帖子

使用 SSH.NET 流式传输私钥的问题

我正在使用 Renci.SshNet 库,并让它使用用户名和私钥。当从文件或文件流读取私钥时,我可以很好地打开私钥,但在内存流期间它会失败。

这有效:

var pk = new PrivateKeyFile(@"C:\myfile.ppk");
Run Code Online (Sandbox Code Playgroud)

这有效:

var f = new FileStream(@"C:\myfile.ppk", FileMode.Open, FileAccess.Read);
var pk = new PrivateKeyFile(f);
Run Code Online (Sandbox Code Playgroud)

这些失败并显示“私钥无效”。

var s = new MemoryStream(Encoding.UTF8.GetBytes(variablename));
//No carriage returns
var s = new MemoryStream(Encoding.UTF8.GetBytes(@"-----BEGIN RSA PRIVATE KEY----- <snip>"));
//Include carriage returns
var s = new MemoryStream(Encoding.UTF8.GetBytes(@"-----BEGIN RSA PRIVATE KEY----- <snip>"));
Run Code Online (Sandbox Code Playgroud)

我什至尝试了在 SO 上找到的流位置:

private Stream GenerateStreamFromString(string s)
{
    MemoryStream stream = new MemoryStream();
    StreamWriter writer = new StreamWriter(stream);
    writer.Write(s);
    writer.Flush();
    stream.Position = 0;
    return stream;
}
Run Code Online (Sandbox Code Playgroud)

我一开始以为 Renci …

c# ssh azure ssh.net

4
推荐指数
1
解决办法
7349
查看次数

标签 统计

azure ×1

c# ×1

ssh ×1

ssh.net ×1