Gurus, I have a srcipt which copys public keys off ssh to the host which I will used as centralized login server to do routine tasks. The script is working but want it not to display password in plain text to stdout. Is there a way to tell it to display '***' or blank space when I send over the password? below is the script:
#!/usr/local/bin/perl
use Expect;
use IO::Stty;
if ( scalar(@ARGV) < 1 ) {
print "Usage: $0 <srcpath> <dest_host> <destpath>\n";
exit 1;
}
$srcpath = shift;
$dest_host = shift;
$destpath = shift;
copyover();
sub copyover {
my $scp=Expect->spawn("/usr/bin/scp -r \"$srcpath\" ${dest_hos
+t}:$destpa
th");
my $spawn_ok;
$scp->expect(30,
[
qr'ssword: ',
sub {
$spawn_ok=1;
print $scp ("password\n");
exp_continue;
}
],
[
qr'yes/no',
sub {
$spawn_ok=1;
$scp->send("yes\n");
exp_continue;
}
],
'-re', qr'[#>:] $', #'
);
$scp->soft_close();
return;
}
Thanks for your input.