• Publicidad

Pasando password en llamada a system

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Pasando password en llamada a system

Notapor miguialberto » 2009-05-19 08:22 @390

¡Hola!

En un script Perl quiero hacer un:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $scp_resultado = `scp -r  /tmp/$file sybase\@dc-db2-db:/tmp/$file <<END1
END1`
;
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4

El problema es que el comando me pide password. ¿Cómo puedo hacer una llamada para copiar dos ficheros entre dos servidores y pasar el password como parámetro?

¡Gracias por adelantado!
miguialberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2008-07-28 06:13 @301

Publicidad

Notapor explorer » 2009-05-19 11:28 @519

Lo normal en estos casos es usar el método de clave pública. No uses frase de paso en la definición de la clave.

Genera un par de claves en el ordenador cliente. Y lleva la clave pública al servidor. Luego, configura el servidor para corresponder esa clave pública con los accesos que provengan del cliente. Y ya está: no necesitarás escribir la contraseña más. Y las operaciones de copia, igual.

Humm... creo que es más fácil usar el módulo Net::OpenSSH de nuestro compañero Salva. O el Net::SCP. O el Net::SCP::Expect. O el...

Puedes mirar el código que usan estos módulos para ver cómo realizan el paso de la contraseña... pero entonces te das cuenta de que es mucho más cómodo usar el módulo entero.

(no probado)
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $ssh = Net::OpenSSH->new('sybase:password@dc-db2-db');
$ssh->scp_put({recursive => 1}, "/tmp/$file", '/tmp/');
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor miguialberto » 2009-05-19 12:32 @564

¡Gracias de nuevo, explorer!

La verdad es que estaba buscando alguna manera de hacerlo con system(). He intentado de todo (poner en una línea scp, en otra el password y en otra EOF... (y muchas más variantes) pero no funciona.

Así que me animaré con las claves públicas. Ya he leído algo sobre eso y sobre los módulos, así que me imagino que no habrá problemas.

Un saludo.
miguialberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2008-07-28 06:13 @301


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron