want2bemonk has asked for the wisdom of the Perl Monks concerning the following question:
Hi , I am trying to do a "su -" in a remote machine and run some commands as root.
With the below script i am able to login to the remote machine, but i get "su: incorrect password" error even when the password is correct, i guess i am not passing the password in the correct format.
Please look at the below code and let me know where i am going wrong Thanks.
#! /usr/bin/perl use Net::SSH::Expect; #Preparing for ssh session my $ssh = Net::SSH::Expect->new ( host=>"poseidon", user=>'testusr', timeout=>10, raw_pty=>1, password=>'wel123go', log_file=>"log.txt" ); #Logging in to the session $ssh->login(); print "Logged in \n"; # Commands executed $ssh->exec("stty raw -echo"); $whoami=$ssh->exec("whoami"); print "\$whoami : ",$whoami,"\n"; $ssh->send("su -"); $ssh->waitfor('Password:\s*\z', 1) or die "prompt 'Password' not found + after 1 second"; my $pass = 'passw0rd'; $result = $ssh->send($pass); print "\$result : ",$result,"\n"; $whoami=$ssh->exec("whoami"); print "\$whoami : ",$whoami,"\n"; # Expect to see root #closing the session $ssh->close();
Content of the log file :
Password:
Last login: Tue Sep 1 23:53:01 2009 from poseidon.com^M
testusr@poseidon.com:~> testusr@etshmctbox10:~> hscpe
testusr@poseidon.com:~> Password:
su: incorrect password
testusr@etshmctbox10:~>
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Change user to root using ssh::expect
by ig (Vicar) on Sep 01, 2009 at 19:51 UTC | |
|
Re: Change user to root using ssh::expect
by skx (Parson) on Sep 01, 2009 at 19:59 UTC |