Net::SFTP::Foreign

El módulo Net::SFTP::Foreign proporciona un cliente SFTP en Perl. Para ello utiliza un cliente ssh externo. A diferencia de Net::SFTP y de Net::SSH no permite el uso de claves (passwords) como argumentos.
  1 #!/usr/bin/perl -w
  2 use Net::SFTP::Foreign;
  3 use strict;
  4 use Data::Dumper;
  5
  6 our $count = 0;
  7 my ($stdout, $stderr, $exit) = ('', '', '');
  8 my $user = 'XXXX';
  9 my $host = 'YYY';
 10 my $sftp = Net::SFTP::Foreign->new(host=>$host, user=>$user);
 11 $sftp->put('/home/lhp/Lperl/src/ssh/examplesftp.pl', 'borrame.txt');
 12 $sftp->ls('.', sub { print "$_[0]->{filename}\t"; print "\n" if $count++ % 5 == 0 } );
 13 print "\n";
La conexión sftp se crea en la línea 10. El constructor new crea un objeto que representa la conexión abierta. Los métodos get y put permiten mover ficheros entre las máquinas. El método ls nos devuelve una estructura de datos con información específica sobre cada entrada del directorio. Los tres métodos admiten un parámetro que referencia a una subrutina que se ejecutará sobre cada entrada.

Sigue el resultado de la ejecución. La apertura de la conexión en la línea 10 hace que se pida el password. Una alternativa es usar claves RSA o DSA.

$ ./examplesftp.pl
DSA host key for IP address '147.83.42.28' not in list of known hosts.
XXXX@YYY's password: # el usuario rellena la password una vez
MANPATH: Undefined variable.
.
..      ar      bin     etc     src
tmp     .ssh    examplesftp.pl  papiguide       work
.pvmcshrc       .DIMEMAS_defalults      .adprc  scratch1        scratch
include .cshrc  unstable        .nanoscshrc     .news_time
.Xauthority     .nqshosts       borrame.txt     .loggg  .login
.sh_history     .exrc   .papi   .ssh2   repository
.profile        .forgex

Casiano Rodríguez León
Licencia de Creative Commons
Programación Distribuida y Mejora del Rendimiento
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=44.
2012-06-19