Я пытаюсь использовать сборку WinSCP для загрузки на наш FTP-сервер. У нас есть общий закрытый ключ, хранящийся в нашей БД, который мы извлекаем и используем для аутентификации (в настоящее время он работает для нашей загрузки Java с помощью JSch
). Однако WinSCP требуется имя пути к файлу.
Я пытаюсь записать наш закрытый ключ в файл, который WinSCP использует для аутентификации, но получаю следующую ошибку:
"C:\[..path..].\key.txt (не распознанный формат файла ключа)"
Загрузить код:
String host = token.hostName;
String user = token.userID;
String sshKey = token.sshKey;
//write key to temp file
String keyFile = AppDomain.CurrentDomain.BaseDirectory+@".\key.txt";
FileStream temp = new FileStream(keyFile, FileMode.Create);
temp.Write(Encoding.ASCII.GetBytes(sshKey), 0 , 0);
temp.Close();
try {
// Setup session options
SessionOptions sessionOptions = new SessionOptions {
Protocol = Protocol.Sftp,
HostName = host,
UserName = user,
SshPrivateKeyPath = keyFile,
GiveUpSecurityAndAcceptAnySshHostKey = true
};
using (Session session = new Session()) {
// Connect
session.Open(sessionOptions);
session.DisableVersionCheck = true;
// Upload files
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
transferResult = session.PutFiles(@resultsFolder+"*", depthDir, false, transferOptions);
// Throw on any error
transferResult.Check();
// Print results
foreach (TransferEventArgs transfer in transferResult.Transfers) {
Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
}
}
} catch (Exception e) {
Console.WriteLine("Error: {0}", e);
} finally {
// delete file with key
File.Delete(keyFile);
}
key.txt
? Показать нам. - person Martin Prikryl   schedule 15.06.2018key.txt
— это просто длинная строка символов (закрытый ключ) - person Fueled By Coffee   schedule 15.06.2018