[CodeSnippet] SSH/SFTP en C# usando SharpSSH

.NET tiene una clase llamada FtpWebRequest, para el acceso a un FTP, un ejemplo completo en el siguiente artículo: Simple FTP Demo Application Using C#.NET 2.0.

Pero esa clase no soporte SFTP, como lo comentan en este foro: SSH/SFTP Communications in C# (revisar las respuestas tiene otras opciones).

Una librería gratuita es: SharpSSH, gracias a Tamir Gal.  Cuando descarguen la librería, también hay una aplicación consola de ejemplo, y con Reflector podemos ver como funciona esta librería.

Y nada, el código para subir un archivo usando el protocolo SFTP, es el siguiente. Archívese, y compártase:

   1: using System;

   2: using System.Configuration;

   3: using tss = Tamir.SharpSsh;

   4:  

   5: namespace DemoSFTP

   6: {

   7:   class Program

   8:   {

   9:     static void Main(string[] args)

  10:     {

  11:  

  12:       String hostServer = ConfigurationManager.AppSettings["host"];

  13:       String userName = ConfigurationManager.AppSettings["userName"];

  14:       String password = ConfigurationManager.AppSettings["password"];

  15:       Int32 port = Int32.Parse(ConfigurationManager.AppSettings["port"]);

  16:  

  17:       String  fromFile= @"D:Datosprueba.txt";

  18:       String toFile = "/carpeta01/prueba.txt";

  19:  

  20:       //Create object

  21:       tss.SshTransferProtocolBase sftpClient;

  22:       sftpClient = new tss.Sftp(hostServer, userName);

  23:       sftpClient.Password = password;

  24:  

  25:       //connect to server

  26:       sftpClient.Connect(port);

  27:  

  28:       Console.WriteLine("conectado al servidor");

  29:       Console.ReadLine();

  30:  

  31:       //subir archivo

  32:       sftpClient.Put(fromFile,toFile);

  33:  

  34:       Console.WriteLine("archivo publicado");

  35:       Console.ReadLine();

  36:  

  37:       //close connection

  38:       sftpClient.Close();

  39:  

  40:     }

  41:   }

  42: }

Saludos,

3 comentarios en “[CodeSnippet] SSH/SFTP en C# usando SharpSSH”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *