Ejecutar Comandos SSH desde C# | DevTroce.com

Ejecutar Comandos SSH y transferir ficheros por SCP desde C#

Febrero 3, 2010. Por GeekZero. Categorizado en C# .Net, GNU/Linux, Lenguajes de Programación, Redes, Sistemas Operativos. Dejanos el Primer Comentario. Leido 877 veces.

Ya vimos en una entrega anterior como ejecutar comandos Shell (SSH) con Java, en ésta oportunidad le tocará a C#, básicamente la aplicación podrá hacer lo mismo que hace el ejemplo anterior, la unica diferencia es lo más obvio, el lenguaje en que fue escrito :P .

Para lograr esto en C# necesitaremos descargarnos la librería opensource Tamir | Gal el mismo nos servirá para realizar varias tareas, ejecutar comandos SSH y copiar ficheros por SCP. Una vez descargado agregamos las .dll a las referencias del proyecto, haciendo click derecho sobre references –>Agregar referencias.. –> Examinar –> Tamir.SharpSSH.dll. (Para este paso buscamos el directorio donde hemos descargado el archivo).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using Tamir.SharpSsh;<span id="more-720"></span>
 
private void EjecutarSSH(string pServidor, string pUsuario, string pPassword, string pComando)
{
	SshStream SSH = null;
	try
        {
		// instancia del objeto SSHShell
                SSH = new SshStream(pServidor, pUsuario, pPassword);
		// ejecutar el comando
		SSH.Write(pComando);
		// confirmar
		SSH.flush();
	}
	catch (Exception ex) 
	        { throw ex; }
	finally 
	{ 
		//cerrar conexion SSH
                SSH.Close();
	}  // end try
} // end EjecutarSHH
 
private void BajarSCP(string pServidor, string pUsuario, string pPassword, string pFileRemoto, string pFileLocal)
{
	// instancia del objeto SCP
	Scp SCP = new SshStream(pServidor, pUsuario, pPassword);
	try
        {
		// crear conexion SSH
                SCP.Connect();
		// Bajar el archivo
                SCP.From(pFileRemoto, pFileLocal, false);
	}
	catch (Exception ex) 
	       { throw ex; }
	finally 
	{ 
		//cerrar conexion SCP
                SCP.Close();
	}  // end try
} // end BajarSCP
 
private void SubirSCP(string pServidor, string pUsuario, string pPassword, string pFileRemoto, string pFileLocal)
{
	// instancia del objeto SCP
	Scp SCP = new SshStream(pServidor, pUsuario, pPassword);
	try
        {
		// crear conexion SSH
               SCP.Connect();
		// Subir el archivo
                SCP.To(pFileLocal, pFileRemoto, false);
	}
	catch (Exception ex) 
	       { throw ex; }
	finally 
	{ 
		//cerrar conexion SCP
                SCP.Close();
	}  // end try
} // end SubirSCP

Articulos Relacionados:

Etiquetas: , ,

Escribenos tu Comentario

Sigue los comentarios por RSS, suscribete a los feeds del comentario.