使用 SSH public/private 密钥连接到 sFTP 服务器。错误 {无效的私钥文件。} 使用 SSH.NET
Connectig to sFTP Server using SSH public/private key. Error {Invalid private key file.} Using SSH.NET
首先我使用
生成了密钥
var keygen = new SshKeyGenerator.SshKeyGenerator(2048);
var privateKey = keygen.ToPrivateKey();
var publicSshKey = keygen.ToRfcPublicKey();
私钥生成以下字符串:
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBA... etc.
-----END RSA PRIVATE KEY-----
我现在正在尝试创建一个新的 Renci.SshNet.PrivateKeyFile 对象以用于创建 SftpClient 对象。我尝试以多种方式加载 RSA 私钥字符串,类似于:
using (var keyStream = new MemoryStream(Encoding.ASCII.GetBytes(ReturnKey())))
{
var privateKy = new PrivateKeyFile(keyStream);
}
ReturnKey() 方法只是 returns 私钥的字符串 -----BEGIN RSA PRIVATE KEY----- 等。我试过使用和不使用“---” --BEGIN RSA and -----End RSA”,我得到相同的结果:
Error {Invalid private key file.}
我有连接到 sFTP 服务器的所有详细信息,即用户、DNS、端口、路径。它生成了 public 密钥,我只是无法加载私钥作为开始。
这是我第一次必须使用 SSH 连接到 sFTP。任何帮助将不胜感激,谢谢。
看起来这是我添加私钥文本的方式;相反,我将密钥保存到 txt 文件并直接加载。我认为还有其他字符,tabs/returns 可能在 ReturnKey() 函数的字符串中,所以如果我添加完整代码会有所帮助。
首先我使用
生成了密钥var keygen = new SshKeyGenerator.SshKeyGenerator(2048);
var privateKey = keygen.ToPrivateKey();
var publicSshKey = keygen.ToRfcPublicKey();
私钥生成以下字符串:
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBA... etc.
-----END RSA PRIVATE KEY-----
我现在正在尝试创建一个新的 Renci.SshNet.PrivateKeyFile 对象以用于创建 SftpClient 对象。我尝试以多种方式加载 RSA 私钥字符串,类似于:
using (var keyStream = new MemoryStream(Encoding.ASCII.GetBytes(ReturnKey())))
{
var privateKy = new PrivateKeyFile(keyStream);
}
ReturnKey() 方法只是 returns 私钥的字符串 -----BEGIN RSA PRIVATE KEY----- 等。我试过使用和不使用“---” --BEGIN RSA and -----End RSA”,我得到相同的结果:
Error {Invalid private key file.}
我有连接到 sFTP 服务器的所有详细信息,即用户、DNS、端口、路径。它生成了 public 密钥,我只是无法加载私钥作为开始。
这是我第一次必须使用 SSH 连接到 sFTP。任何帮助将不胜感激,谢谢。
看起来这是我添加私钥文本的方式;相反,我将密钥保存到 txt 文件并直接加载。我认为还有其他字符,tabs/returns 可能在 ReturnKey() 函数的字符串中,所以如果我添加完整代码会有所帮助。