Práctica: Conexión sftp

Automatice la conexión sftp con cualquier máquina de la red a la que tiene acceso que provea servicios sftp usando Expect. Aisle los componentes del diálogo en un fichero de configuración escrito en Perl. Si no se proporciona el password desde línea de comandos o fichero de configuración se deberá leer usando la función read_password del módulo Term::ReadPassword.

Casiano Rodríguez León
2010-03-22
"http://nereida.deioc.ull.es/">pcgull
Sig: Práctica: Conexión sftp Sup: Expect Ant: q-agent: Seguridad y Ficheros
Casiano Rodríguez León
2010-04-19
ostamble Sup: Expect Ant: Práctica: Conexión sftp
Casiano Rodríguez León
2010-05-05
prompt\n"); 50 print $rsh "$machine\r"; 51 52 if (any { /^$machine$/ } @MOREPASSWORDS ) { 53 $rsh->expect($delay,'-re', $passwordprompt)||(die"Never got password prompt\n"); 54 print $rsh "$password\r"; 55 } 56 # Retornar control al usuario 57 $rsh->interact(); .. .............. # subrutinas de apoyo

El método spawn

El método spawn ejecuta el comando (línea 37) creando una seudoterminal como vía de comunicación entre el comando y el programa cliente.

Seudoterminales

Una seudoterminal es un proceso que proporciona un canal de comunicaciones entre los dos procesos implicados mediante la emulación de una terminal de texto. Casi todos los programas admiten una comunicación vía una terminal y alguno (editores, el programa para cambiar la clave de usuario, etc.) solo admiten una comunicación via una seudoterminal. Además, la comunicación con seudoterminales no esta bufferada. Se evita asi el riesgo de bloqueo que introduce la presencia de memorias auxiliares.

El Método expect

Despues de creado el objeto seudoterminal $rsh se establece un diálogo con el comando lanzado (lineas 39-40, 42-43 y 46-47). El método expect permite analizar la salida del comando hasta que case con la expresión regular proporcionada como argumento. La llamada termina si no se produce el casamiento en menos de $delay segundos.

El Método print

Mediante llamadas a print en el manejador de la seudoterminal $rsh proporcionamos la entrada al comando lanzado.

El Método any de List::MoreUtils

Si la máquina de la red interna a la que entramos requiere una validación adicional (esta entre las descritas en el array @MOREPASSWORDS) la (misma) clave es introducida de nuevo.

El Método interact

El método interact (línea 50) devuelve el control de la entrada/salida a los manejadores de fichero habituales STDIN, STDOUT y STDERR.

Ejercicio 8.2.1   Estudie la siguiente cuestion (Module Net::SSH::Expect - Cannot interact) en PerlMonks. ¿Cuales son sus sugerencias?



Subsecciones
Casiano Rodríguez León
2011-02-07
l8" HREF="http://www.google.es/">googleetsiiullpcgullLHPLHP moodleperlcriticpbpblogsgoogle code project hosting
Sig: q-agent: Seguridad y Ficheros Sup: Expect Ant: Comunicación Interactiva con Expect
Casiano Rodríguez León
2011-02-21
ion Panel-->
Casiano Rodríguez León
2011-02-21
HTML>