Я использую библиотеку Renci.SshNet и работаю с использованием имени пользователя и закрытого ключа. Я могу открыть секретный ключ, когда он читается из файла или потока файлов, но он не работает во время потока памяти.SshNet Проблема с потоковым личным ключом
Это работает:
`var pk = new PrivateKeyFile(@"C:\myfile.ppk");`
Это работает:
var f = new FileStream(@"C:\myfile.ppk", FileMode.Open, FileAccess.Read);
var pk = new PrivateKeyFile(f);
Эти потерпеть неудачу с "Invalid Private Key".
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>"));
Я даже попробовал позицию потока, как найти на 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;
}
`
я был в первый думать библиотеку Renci была ошибка с потоком, но очевидно, файловый поток работает. Я планирую разместить ключ в строчном формате в лазурной таблице хранения, но я открыт для других идей.
Я думаю, что я был настолько ослеплен этим, ваша элементарная отладочная вещь помогла - моя голова была настолько глубока в проблеме, что я забыл основные детали отладки. По какой-то причине копирование/вставка из таблицы Notepad ++ в Azure вставляло в нее некоторые странные символы - не знаю.Поместите пробелы вокруг символа «/», возможно, какой-то тип лазурного побега. Я скопировал строку обратно с лазурного на Visual Studio и bam! Но большая часть Я думаю, что вы правы, и мне нравится ваше решение, чтобы лучше хранить весь файл в BLOB и передавать его оттуда, а не беспокоиться о форматировании. Спасибо за эту идею, я пойду с этим. – scimino