Файлы загружаются иногда и в большинстве случаев выдает ошибку SFTP с файлом ключа, используя S SH. NET (В доступе отказано (publickey)) - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь загрузить файл с использованием 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;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...