Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Módulos » Problema con módulo Net::SSH2 Responder al tema
Nuevo tema


Página 1 de 1  [ 9 mensajes ] 
 
Nota 2011-12-20 12:34 @565

Perlero Nuevo
Registrado: 2011-12-20 10:13 @467
Mensajes: 4
Problema con módulo Net::SSH2
¡¡¡Saludos Maestros!!!

Uso Windows 7 y tengo instalada la última versión de Activeperl (5.14). Sucede que quiero hacer una conexión por medio de SSH a una máquina remota y luego transferirle unos archivos usando SFTP (tema ampliamente comentado en este foro). De los pocos módulos que puedo usar (por compatibilidad de sistema operativo) uso el Net::SSH2, resulta que al querer acceder al equipo por SSH, el programa me tira error en Password, cosa que ya revisé cientos de veces y el password es el correcto. Coloco mi código para ver si ustedes me puede orientar :o :o

#!/usr/bin/perl
use Net::SFTP::Foreign;

my $host = '172.58.69.24';
my $user = 'pedro';
my $pass = 'marmol1';

use Net::SFTP::Foreign;

my $sftp = Net::SFTP::Foreign->new($host,
backend => 'Net_SSH2',
username => $user,
password => $pass);
$sftp->error and
die "No se puede establecer la conexionn SFTP: ". $sftp->error;

use Net::SSH2;

my $ssh2 = Net::SSH2->new();
$ssh2->connect($host)
or die "Conexion Fallida";
$ssh2->auth_password($user, $pass)
or die "Password incorrecto\n";
$sftp = Net::SFTP::Foreign->new(ssh2 => $ssh2,
backend => 'Net_SSH2');
$sftp->error and
die "No se puede establecer conexion SFTP: ". $sftp->error;

$sftp->get("foo", "foo") or die "get failed: " . $sftp->error;



La estructura del código que estoy usando es Net::SFTP::Foreign::Backend::Net_SSH2 - Run Net::SFTP::Foreign on top of Net::SSH2, cuyo autor es el amigo permalink... disculpen si mi tema es muy novato, pero es primera vez que intento hacer esto... ¡¡Gracias!!


Nota 2011-12-20 14:58 @665
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Re: Problema con módulo Net::SSH2
Bienvenido a los foros de Perl en español, sergiogib.

Hummm... creo que no es username, sino user.

_________________
JF^D Perl programming


Nota 2011-12-20 17:26 @768
Avatar de Usuario
Perlero Frecuente
Registrado: 2008-01-03 15:19 @680
Mensajes: 175
Re: Problema con módulo Net::SSH2
explorer escribió:
Hummm... creo que no es username, sino user.

El backend de Net::SSH2 también acepta username.

Sergiogib, si nos dices cuál es el mensaje de error que te aparece será mucho más fácil ayudarte.

También puedes activar el modo de depuración de Net::SFTP::Foreign añadiendo la siguiente línea al principio de tu programa:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
$Net::SFTP::Foreign::debug = -1;


Nota 2011-12-20 17:34 @773

Perlero Nuevo
Registrado: 2011-12-20 10:13 @467
Mensajes: 4
Re: Problema con módulo Net::SSH2
Intenté cambiar username por user, pero aun así persiste el problema, ¿¿¿alguna otra sugerencia???
Añadí el debug en la siguiente línea, y me muestra la siguiente información:

use Net::SSH2;

my $ssh2 = Net::SSH2->new();
$ssh2->debug(1);
$ssh2->connect($host)
or die "Conexion Fallida";

$ssh2->auth_password($user, $password)
or die "Password incorrecto\n";

$sftp = Net::SFTP::Foreign->new(ssh2 => $ssh2,


Resultado:

Password incorrecto
Net::SSH2::DESTROY object 0x182fadc
Net::SSH2::Channel::DESTROY
Net::SSH2::DESTROY object 0x18fe1e4


¿¿Recomendaciones??


Nota 2011-12-21 03:57 @206
Avatar de Usuario
Perlero Frecuente
Registrado: 2008-01-03 15:19 @680
Mensajes: 175
Re: Problema con módulo Net::SSH2
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. use Net::SSH2;
  2. my $ssh2 = Net::SSH2->new();
  3. $ssh2->connect($host) or die "Conexion Fallida: " . $ssh2->error;
  4. $ssh2->auth_password($user, $password) or die "Password incorrecto: " . $ssh2->error;


Y para asegurarte de que no hay ningún error estúpido, como un nombre de variable mal escrito o algo así, activa los pragmas de warnings y strict:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
use strict;
use warnings;


Nota 2011-12-21 10:17 @470

Perlero Nuevo
Registrado: 2011-12-20 10:13 @467
Mensajes: 4
Re: Problema con módulo Net::SSH2
Gracias por sus comentarios, pensé que iban a tardar en responderme, pero ha sido rápido... Les comento que he añadido la línea:

$Net::SFTP::Foreign::debug = -1;

El código del programa es este:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. $Net::SFTP::Foreign::debug = -1;
  6. my $host = '172.58.45.63';
  7. my $user = 'pedro';
  8. my $password = 'marmol1';
  9.  
  10. use Net::SFTP::Foreign;
  11.  
  12. my $sftp = Net::SFTP::Foreign->new($host,
  13.     backend => 'Net_SSH2',
  14.     user => $user,
  15.     password => $password);
  16.   $sftp->error and
  17.     die "No se puede establecer la conexionn SFTP: ". $sftp->error;
  18.  
  19. use Net::SSH2;
  20. my $ssh2 = Net::SSH2->new();
  21. $ssh2->connect($host) or die "Conexion Fallida: " . $ssh2->error;
  22. $ssh2->auth_password($user, $password) or die "Password incorrecto: " . $ssh2->error;
  23.  
  24.   $sftp = Net::SFTP::Foreign->new(ssh2 => $ssh2,
  25.     backend => 'Net_SSH2');
  26.   $sftp->error and
  27.     die "No se puede establecer conexion SFTP: ". $sftp->error;



Con el resultado siguiente:

#588 1324479196.00000 _queue_msg: queueing msg len: 5, code:1, id:3 ... [1]
00 00 00 05 01 00 00 00 03
| .........
#588 1324479196.00000 _get_msg: waiting for message... [1]
#588 1324479196.00000 _do_io: 9 bytes written to SSH channel
#588 1324479196.00000 _sysreadn: 4 bytes read from SSH channel
#588 1324479196.00000 _sysreadn: 5 bytes read from SSH channel
#588 1324479196.00000 _get_msg: got it!, len:5, code:2, id:-, status: -02 00 00 00 03
| .....
Password incorrecto: -18 at C:\Users\squintana\Programas Perl\ssh3.pl line 22.
#588 1324479196.00000 DESTROY: Net::SFTP::Foreign=HASH(0x119f6dc)->DESTROY called (current pid:=588, disconnect_by_pid: )
#588 1324479196.00000 disconnect: Net::SFTP::Foreign=HASH(0x119f6dc)->disconnect called (ssh pid: )
#588 1324479196.00000 _conn_lost: _conn_lost
#588 1324479196.00000 _set_status: _set_status code: 7, str: Connection lost
#588 1324479196.00000 _set_error: _set_err code: 37, str: Connection to remote server is broken


Siempre me dice que el Password es incorrecto. --Gracias por su ayuda--


Nota 2011-12-21 16:40 @736
Avatar de Usuario
Perlero Frecuente
Registrado: 2008-01-03 15:19 @680
Mensajes: 175
Re: Problema con módulo Net::SSH2
Pues, efectivamente, el código de error 18 es LIBSSH2_ERROR_AUTHENTICATION_FAILED, así que hay dos opciones: o has encontrado un bug en Net::SSH2/libssh2 (poco probable) o, de alguna manera, la clave que estás utilizando no es la correcta, o te estás conectando al servidor equivocado, o algo así.


Nota 2011-12-21 18:09 @798
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Re: Problema con módulo Net::SSH2
Añado... que la contraseña tenga un carácter "extraño", con una codificación en origen distinta de la que espera el servidor... o que el servidor no admite contraseñas por la entrada estándar, solo por el intercambio de claves... alguna mayúscula puesta como minúscula... que el antivirus/cortafuegos de la máquina impide el acceso desde el script hacia el exterior (no, esto no, porque se ve que sí responde el servidor)... y... ¿el nombre de usuario es correcto?

_________________
JF^D Perl programming


Nota 2011-12-26 13:02 @585

Perlero Nuevo
Registrado: 2011-12-20 10:13 @467
Mensajes: 4
Re: Problema con módulo Net::SSH2
Caballeros, gracias por sus sugerencias y ayuda con este problema. Sucede que logro conectar con el servidor usando Putty, sin ningún problema, mismo user y mismo pass... No sé, algo me dice que será imposible hacerlo usando Perl... :(

¿La librería LIBSSH2 hay que instalarla aparte o viene incluida en el módulo de SSH2 que instalé con el Perl Package Manager...?


Responder al tema  [ 9 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO