Я пытаюсь загрузить файл с использованием SFTP. Файл загружается иногда и в большинстве случаев выдает ошибку S SH. NET (Отказано в доступе (publickey)) SFTP-сервер принимает только IP-адреса из белого списка.
Локально приложение работает нормально.
Использование S SH. NET 2016.1.0
Код
public void SetConnection(string userName, string strRSAKey)
{
var authMethods = new List<AuthenticationMethod>();
authMethods.Add(new PrivateKeyAuthenticationMethod(
userName,
new[] { new PrivateKeyFile(GenerateStream(strRSAKey)) }
));
connectionInfo = new ConnectionInfo(hostName, port, userName, authMethods.ToArray());
}
public bool UploadFile(string sourceFilePath, string destinationFilePath)
{
if (connectionInfo != null)
{
using (var client = new SftpClient(connectionInfo))
{
client.Connect();
if (client.IsConnected)
{
var csvFile = File.Open(sourceFilePath, FileMode.Open);
client.UploadFile(csvFile, destinationFilePath, true);
csvFile.Dispose();
}
client.Disconnect();
return true;
}
}
return false;
}
private Stream GenerateStream(string str)
{
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(str);
writer.Flush();
stream.Position = 0;
return stream;
}