Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Problema durante conexión con SFTP

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Mar May 06, 2008 6:50 am
fgalves
Perlero Adicto
Perlero Adicto
Registrado: 25 Sep 2006
Mensajes: 210
Problema durante conexión con SFTP Responder citando

Hola a todos,

Estoy escribiendo un script que se conecte a un entorno remoto mediante el modulo Net::SFTP.

El hecho es que por más que lo intento, siempre obtengo el mismo error:
Permission denied at /usr/perl5/site_perl/5.8.4/Net/SFTP.pm line 62

He aquí el código:

Perl:
my %args;
$args{user} = "pepe";
$args{password} = "secreto";
my $host = "maquina";

print "Connecting to $host...\n";
my $sftp;
eval {$sftp = Net::SFTP->new($host,%args)};
if ($@) { print "Sftp connection failed:\n $@\n"; }


He revisado mil veces el user, host y password y no veo dónde puede estar el problema. Cuando realizo un SFTP manualmente, funciona a la perfección, pero desde mi script no parece funcionar...
¿Alguna sugerencia?

Gracias por adelantado,
Saludos,
Felipe
Mensaje Mar May 06, 2008 7:14 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4142
Ubicación: Valladolid, España
Responder citando

Activa la opción 'debug' para obtener más pistas:
Perl:
$args{debug} = 1;
Mensaje Mar May 06, 2008 7:29 am
fgalves
Perlero Adicto
Perlero Adicto
Registrado: 25 Sep 2006
Mensajes: 210
Responder citando

He aquí la información que me da al activar la opción debug:

Código:
Connecting to maquina...
ncefqdev: Reading configuration data /users/fgalves/.ssh/config
ncefqdev: Reading configuration data /etc/ssh_config
ncefqdev: Connecting to maquina, port 22.
ncefqdev: Remote protocol version 1.99, remote software version OpenSSH_3.8p1
ncefqdev: Net::SSH::Perl Version 1.29, protocol version 2.0.
ncefqdev: No compat match: OpenSSH_3.8p1.
ncefqdev: Connection established.
ncefqdev: Sent key-exchange init (KEXINIT), wait response.
ncefqdev: Algorithms, c->s: 3des-cbc hmac-sha1 none
ncefqdev: Algorithms, s->c: 3des-cbc hmac-sha1 none
ncefqdev: Entering Diffie-Hellman Group 1 key exchange.
ncefqdev: Sent DH public key, waiting for reply.
ncefqdev: Received host key, type 'ssh-dss'.
ncefqdev: Host 'maquina' is known and matches the host key.
ncefqdev: Computing shared secret key.
ncefqdev: Verifying server signature.
ncefqdev: Waiting for NEWKEYS message.
ncefqdev: Enabling incoming encryption/MAC/compression.
ncefqdev: Send NEWKEYS, enable outgoing encryption/MAC/compression.
ncefqdev: Sending request for user-authentication service.
ncefqdev: Service accepted: ssh-userauth.
ncefqdev: Trying empty user-authentication request.
ncefqdev: Authentication methods that can continue: publickey,keyboard-interactive.
ncefqdev: Next method to try is publickey.
Permission denied at /usr/perl5/site_perl/5.8.4/Net/SFTP.pm line 62


Gracias por adelantado,
Felipe
Mensaje Mar May 06, 2008 9:11 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4142
Ubicación: Valladolid, España
Responder citando

¡Respondida!

(Respondida incluso a fgalves) (A veces es muy útil hacer búsquedas en este mismo foro Smile )

La pista me la ha dado la frase Trying empty user-authentication request, con lo que me ha dado la idea de que no se estaba pasando el nombre del usuario.
Mensaje Mie May 07, 2008 1:23 am
fgalves
Perlero Adicto
Perlero Adicto
Registrado: 25 Sep 2006
Mensajes: 210
Responder citando

Gracias por la ayuda Explorer,

No te quepa la menor duda que antes de postear este mensaje, ya había echado un vistazo a mi anterior post al cual haces referencia como "respondida".

Pero el hecho es que si lo examinas con más detalle, no se trata exactamente del mismo problema.

En mi anterior post, estaba cometiendo un error al pasar el hash de argumentos (user, password, ...).

En este nuevo script, he tomado como base el anterior código que me funcionaba a la perfección y siempre me encuentro con el mismo problema: Permission denied at /usr/perl5/site_perl/5.8.4/Net/SFTP.pm line 62

Por lo que dices en tu mensaje anterior, la información mostrada por el debug da a entender que no estoy pasando correctamente los argumentos. He modificado ligeramente mi código y sigo teniendo el mismo problema:

Perl:
print "Connecting to $host...\n";

my $sftp = Net::SFTP->new($host, user => $user, password => $password, debug => 1)
    or die "\n$0: ERROR: Cannot connect to $host: $@";


Desgraciadamente, sigo teniendo el famoso Trying empty user-authentication request.

¿Alguna sugerencia de cómo pasar los argumentos (user, password) de forma correcta si es que realmente lo estoy haciendo mal?

¡Muchísimas gracias!
Saludos,
Felipe
Mensaje Mie May 07, 2008 3:35 am
fgalves
Perlero Adicto
Perlero Adicto
Registrado: 25 Sep 2006
Mensajes: 210
Responder citando

No estoy 100% seguro, pero parece ser que el problema podría estar relacionado con los métodos de autenticación permitidos en el entorno remoto:
Authentication methods that can continue: publickey,keyboard-interactive.

En otros entornos donde SFTP funciona correctamente, ademas de publickey y keyboard-interactive, he comprobado que existe un tercer método de autenticación: password.

Voy a contactar al administrador y os tengo al corriente.

¡Saludos!
Felipe
Mensaje Mie May 07, 2008 4:16 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4142
Ubicación: Valladolid, España
Responder citando

Mira aquí: http://www.perlmonks.org/?node_id=493685 y busca por la frase "PasswordAuthentication no".

Aquí comentan que otra posible causa podría ser el método de encriptación: http://www.perlmonks.org/?node_id=471503
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group