Página 1 de 1

Conexión SSH a switch

NotaPublicado: 2010-06-29 13:20 @597
por dbedoya
Buenas tardes,

resulta que necesito realizar una conexión por SSH y he intentado hacerlo de todas las formas y no me ha funcionado. La idea es conectarme a un switch pero no he podido. Con la conexión telnet sí me ha funcionado, como lo muestro a continuación.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Net::Telnet;
  2. use Sys::Hostname;
  3.  
  4. system("cls");
  5. $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
  6. $telnet->open ('172.30.96.19');
  7. $telnet->waitfor('/Username:/i');
  8. $telnet->print('admin');
  9. $telnet->waitfor('/password:/i');
  10. $telnet->print('*********');
  11. $telnet->waitfor('/\login/i');
  12. $telnet->print('tftp 172.30.100.5 put 3comoscfg.cfg BkGY_172_30_96_19.txt');
  13. sleep(10);
  14. $telnet->print ('exit');
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


De antemano muchas gracias por su colaboración.

Re: Conexión SSH a switch

NotaPublicado: 2010-06-29 16:52 @744
por explorer
Bienvenido a los foros de Perl en Español, dbedoya.

Por estos foros hemos comentado varias veces el tema del SSH. En algunos casos también, de conexiones a dispositivos.

¿Qué marca y modelo es ese enrutador? Cisco tiene soporte especial en Perl.

Por ejemplo:

Te recomiendo que los leas, pero en profundidad. Es decir, aunque empieces leyendo un hilo y hable de otro tema, sigue leyendo el tema hasta el final, porque es muy posible que encuentres cosas que te interesen.

En ellos encontrarás también referencias a los módulos que debes usar. Y cómo activar el modo de depurado para que el módulo y el protocolo SSH vayan chivando qué es lo que va pasando, para saber dónde falla.

Re: Conexión SSH a switch

NotaPublicado: 2010-06-29 17:35 @774
por dbedoya
Hola, muchas gracias por la respuesta. Verificaré nuevamente los foros que me recomiendas. En cuanto al dispositivo es de marca 3com.
Leeré la información y cualquier cosa estaré comentando. Nuevamente, gracias.

Re: Conexión SSH a switch

NotaPublicado: 2010-06-30 07:37 @359
por salva
dbedoya escribiste:Con la conexión telnet sí me ha funcionado, como lo muestro a continuación.

En vez de lo que te funciona, es mejor que nos muestres lo que no.

La conexión vía SSH a switches y similares a veces es más complicada de lo que debiera porque estos usan shells restringidas que no se integran correctamente con SSH. Estaría bien ver el tipo de entorno que provee el dispositivo, así que conéctate manualmente por SSH, ejecuta algunos comandos y pega aquí la captura de la sesión para que podamos examinarla.

Re: Conexión SSH a switch

NotaPublicado: 2010-07-06 16:06 @713
por dbedoya
Les cuento que he intentado de todas las formas que he podido entender de acuerdo a los foros y nada.

Ya logré establecer la conexión por el puerto 22 inclusive, pero al momento de realizar el comando para realizar el backup me genera error. El que me pueda dar una luz le agradecería. Anexo líneas:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use strict;
  2. use warnings;
  3. use Net::SSH::Perl;
  4. use Net::FTP;
  5. use Net::TFTP;
  6.  
  7. my $host = '172.30.252.xx';
  8. my $pass = 'user';
  9. my $user = 'password';
  10. my $cmd  = 'pwd';
  11.  
  12. my $ssh = Net::SSH::Perl->new($host, protocol => '2', debug => 1,interactive=>0);
  13.  
  14. $ssh -> login ($user,$pass);
  15.  
  16. print "\nSe establecio la conexion\n";
  17.  
  18. $ssh -> cmd ("tftp 172.30.100.5 put 3comoscfg.cfg BkGYII.txt");
  19.  
  20. exit;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Al mirar los eventos que me genera el código son los siguientes mensajes:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
EQ1: Reading configuration data /.ssh/config
EQ1: Reading configuration data /etc/ssh_config
EQ1: Connecting to 172.30.252.33, port 22.
EQ1: Remote protocol version 2.0, remote software version VRP-3.3
EQ1: Net::SSH::Perl Version 1.34, protocol version 2.0.
EQ1: No compat match: VRP-3.3.
EQ1: Connection established.
EQ1: Login completed, opening dummy shell channel.
EQ1: channel 0: new [client-session]
EQ1: Requesting channel_open for channel 0.
EQ1: Got channel open confirmation, requesting shell.
EQ1: Requesting service shell on channel 0.
EQ1: channel 1: new [client-session]
EQ1: Requesting channel_open for channel 1.
EQ1: Entering interactive session.
Connection failed: Unknown error
 at ssh10.pl line 19
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Al ver por consola me imprime "Se estableció la conexión", pero no genera el comando de tftp.

Quedo atento a sus comentarios. Gracias.

Re: Conexión SSH a switch

NotaPublicado: 2010-07-06 16:32 @731
por salva
dbedoya escribiste:Quedo atento a sus comentarios. Gracias

Prueba a usar Net::SSH::Expect o Net::OpenSSH en vez de Net::SSH::Perl.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Net::OpenSSH;

my $ssh = Net::OpenSSH->new("$user\@$host", passwd => $password);
$ssh->error and die "Imposible connectar con el servidor: ".$ssh->error;

$ssh->system({stdin_data => "tftp 172.30.100.5 put 3comoscfg.cfg BkGYII.txt"});
  or die "el comando fallo: ".$ssh->error;
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4