Perl Monks, I am trying to use user input for username and password. Then run password to change the current password. I seem to having issues passing the input the first time. If I put the username and password in the script it works but soon as I put the variables I get the error on line 34. Here is my code and here are the errors as well. Thank you in advance.
#!/usr/bin/perl
use strict;
use warnings;
use Net::SSH::Expect;
print "Enter your username: ";
my $unme =<>;
print "Enter current passwd: ";
system('stty','-echo');
chop(my $cur_pswd =<STDIN>);
system('stty','echo');
print "\n", "Enter new passwd: ";
system('stty','-echo');
chop(my $new_pswd =<STDIN>);
system('stty','echo');
print "\n", "Enter new passwd again: ";
system('stty','-echo');
chop(my $val_pswd =<STDIN>);
system('stty','echo');
print"\n";
if ($new_pswd eq $val_pswd){
my $ssh = Net::SSH::Expect->new(
host => 'localhost',
user => "$unme",
password => "$cur_pswd",
raw_pty => 1
);
warn "Starting SSH... \n";
$ssh->run_ssh();
warn "Testing login output... \n";
my $login_output = $ssh->login();
print " Done", "\n";
my $who = $ssh->exec('who');
print($who);
} else{
print "wrong password ! \n";
}
Error>>>>>>
Pseudo-hashes are deprecated at /usr/lib/perl5/site_perl/5.8.0/Net/SSH/Expect.pm line 60, <STDIN> line 3.,
Pseudo-hashes are deprecated at /usr/lib/perl5/site_perl/5.8.0/Net/SSH/Expect.pm line 60, <STDIN> line 3.
Pseudo-hashes are deprecated at /usr/lib/perl5/site_perl/5.8.0/Net/SSH/Expect.pm line 60, <STDIN> line 3.
Pseudo-hashes are deprecated at /usr/lib/perl5/site_perl/5.8.0/Net/SSH/Expect.pm line 60, <STDIN> line 3.
Starting SSH...
Testing login output...
SSHProcessError The ssh process was terminated. at ./ssh_example line 34