[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:\Datos\prueba.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,

Published 14/1/2010 11:27 por Sergio Tarrillo
Archivado en: ,,
Comparte este post:
http://geeks.ms/blogs/sergiotarrillo/archive/2010/01/14/164997.aspx

Comentarios

# re: [CodeSnippet] SSH/SFTP en C# usando SharpSSH

Hola Sergio:

Por si a alguien le intersa más información sobre SSH y C# yo escribí un artícullo sobre el tema hace tiempo:

geeks.ms/.../ejecuci-243-n-remota-de-comandos-contra-m-225-quinas-unix-desde-net.aspx

También me gustaría apuntar que existen unas clases en Codeplex que facilitan mucho el uso de SFTP y que tambien soportan FTP más info:

http://www.codeplex.com/ftps

¡Un saludo!

Thursday, January 14, 2010 5:53 PM por Rodrigo Corral

# re: [CodeSnippet] SSH/SFTP en C# usando SharpSSH

Rodrigo, Gracias por la acotación. Si busqué también en CodePlex, otros más: www.codeplex.com/.../search.

Pero el primero en probar fue el SharpSSH, y funciono bien.

Saludos,

Thursday, January 14, 2010 6:57 PM por Sergio Tarrillo

# re: [CodeSnippet] SSH/SFTP en C# usando SharpSSH

Sergio

Gracias por los archivos, adicional tienes una manual del proceso de ejecucion ya que soy novato y quiero implementar

Gracias por tu ayuda

Wednesday, August 24, 2011 10:51 PM por Marcelo