I am trying to upload files to a linux server but I am getting an error saying:
\"Unable to connect to the remote server
\". I dont know if my code is wrong or the
The best library/NuGet Package that I found was SSH.NET by Renci. Open up Nuget Package Manager and install this into your project.
The upload can be done with a stored file or a byte[]
file.
// you could pass the host, port, usr, and pass as parameters
public void FileUploadSFTP()
{
var host = "whateverthehostis.com";
var port = 22;
var username = "username";
var password = "passw0rd";
// http://stackoverflow.com/questions/18757097/writing-data-into-csv-file/39535867#39535867
byte[] csvFile = DownloadCSV(); // Function returns byte[] csv file
using (var client = new SftpClient(host, port, username, password))
{
client.Connect();
if (client.IsConnected)
{
Debug.WriteLine("I'm connected to the client");
using (var ms = new MemoryStream(csvFile))
{
client.BufferSize = (uint)ms.Length; // bypass Payload error large files
client.UploadFile(ms, GetListFileName());
}
}
else
{
Debug.WriteLine("I couldn't connect");
}
}
}
This was the site that I used as a resource to get me started: http://blog.deltacode.be/2012/01/05/uploading-a-file-using-sftp-in-c-sharp/
It's written for uploading files.
// you could pass the host, port, usr, pass, and uploadFile as parameters
public void FileUploadSFTP()
{
var host = "whateverthehostis.com";
var port = 22;
var username = "username";
var password = "passw0rd";
// path for file you want to upload
var uploadFile = @"c:yourfilegoeshere.txt";
using (var client = new SftpClient(host, port, username, password))
{
client.Connect();
if (client.IsConnected)
{
Debug.WriteLine("I'm connected to the client");
using (var fileStream = new FileStream(uploadFile, FileMode.Open))
{
client.BufferSize = 4 * 1024; // bypass Payload error large files
client.UploadFile(fileStream, Path.GetFileName(uploadFile));
}
}
else
{
Debug.WriteLine("I couldn't connect");
}
}
}
Hopefully this is helpful for anyone trying to upload a file using SFTP in C#.