[Omaha.pm] Net::SSH::Perl and sudo or su

Tony Simons webmaster at tvortex.net
Mon Dec 10 13:18:56 PST 2007


Got past the login which seems normal...things change when I do the sudo
......
        ***Got past login***
azelf: channel 1: new [client-session]
azelf: Requesting channel_open for channel 1.
azelf: Entering interactive session.
azelf: Sending command: whoami
azelf: Requesting service exec on channel 1.
azelf: channel 1: open confirm rwindow 0 rmax 32768
azelf: channel 1: rcvd eof
azelf: channel 1: output open -> drain
azelf: input_channel_request: rtype exit-status reply 0
azelf: channel 1: rcvd close
azelf: channel 1: input open -> closed
azelf: channel 1: close_read
azelf: channel 1: obuf empty
azelf: channel 1: output drain -> closed
azelf: channel 1: close_write
azelf: channel 1: send close
azelf: channel 1: full closed
OUT:tonys

Use of uninitialized value in printf at ./test.pl line 19.
ERR:
EXIT:0

-----------------------------------------------------------------------------------
> OUT:
> ERR:sudo: sorry, you must have a tty to run sudo
>
> EXIT:1



Daniel Linder wrote:
> On Mon, December 10, 2007 14:29, Tony Simons wrote:
>   
>> I take it I have you stumped on the initial problem. :)   I was hoping
>> to get the whole thing to work under perl in one shot as I have with the
>> bash script.
>>     
>
> To recap, you're trying to use the Net::SSH:Perl module and you provided
> this basic code in your initial e-mail:
> <BEGIN>
> #!/usr/bin/perl -w
> $|=1;
> use strict;
> use warnings;
> use Net::SSH::Perl;
> use Term::ReadKey;
> use Getopt::Long;
> my $hos="192.168.99.99";
> my $port=22;
> my $user="dan";
>
> my $cmd = "whoami";
> my $ssh = Net::SSH::Perl->new($hos, interactive =>1, use_pty => 1, debug
> => 1, port => $port, protocol => '2,1', options => ["BatchMode yes"]) or
> die("Could not connect");
>
> $ssh->login($user);
> printf ("\n\t***Got past login***\n");
> my ($stdout, $stderr, $exit) = $ssh->cmd($cmd);
> printf ("OUT:%s\n",$stdout);
> printf ("ERR:%s\n",$stderr);
> printf ("EXIT:%s\n",$exit);
> <END>
>
> (You'll need to change the $hos and $port to match your machines IP and
> port that SSHd is running on.)
>
> When I run it, I get the following output:
> <BEGIN OUTPUT>
> dan at titan:~/tmp/PerlTests$ perl d5.pl
> titan: Reading configuration data /home/dan/.ssh/config
> titan: Reading configuration data /etc/ssh_config
> titan: Connecting to 192.168.99.99, port 22.
> titan: Remote version string: SSH-2.0-OpenSSH_4.2p1 Debian-7ubuntu3.1
>
> titan: Remote protocol version 2.0, remote software version OpenSSH_4.2p1
> Debian-7ubuntu3.1
> titan: Net::SSH::Perl Version 1.30, protocol version 2.0.
> titan: No compat match: OpenSSH_4.2p1 Debian-7ubuntu3.1.
> titan: Connection established.
> titan: Sent key-exchange init (KEXINIT), wait response.
> titan: Algorithms, c->s: 3des-cbc hmac-sha1 none
> titan: Algorithms, s->c: 3des-cbc hmac-sha1 none
> titan: Entering Diffie-Hellman Group 1 key exchange.
> titan: Sent DH public key, waiting for reply.
> titan: Received host key, type 'ssh-dss'.
> titan: Host '192.168.99.99' is known and matches the host key.
> titan: Computing shared secret key.
> titan: Verifying server signature.
> titan: Waiting for NEWKEYS message.
> titan: Enabling incoming encryption/MAC/compression.
> titan: Send NEWKEYS, enable outgoing encryption/MAC/compression.
> titan: Sending request for user-authentication service.
> titan: Service accepted: ssh-userauth.
> titan: Trying empty user-authentication request.
> titan: Authentication methods that can continue: publickey.
> titan: Next method to try is publickey.
> titan: Trying pubkey authentication with key file '/home/dan/.ssh/id_dsa'
> titan: Authentication methods that can continue: publickey.
> titan: Next method to try is publickey.
> Permission denied at d5.pl line 15
> dan at titan:~/tmp/PerlTests$
> <END OUTPUT>
>
> Line 15 is the "$ssh->login($user);" line so I have to think the login()
> routine is having issues.  From the command line I can perform a "ssh
> dan at 192.168.99.99 whoami" and it runs and returns "dan" (the output from
> 'whoami').
>
> For now it looks like the "login()" subroutine isn't handling the ssh
> public key correctly.  Is it possibly related to one of the options
> supplied to the Net::SSH::Perl->new() call?  Does yours die at the same
> login() call?
>
> Dan
>
> - - - -
> "There are four boxes to be used in defense of liberty: soap, ballot,
> jury, and ammo. Please use in that order."
> -- Ed Howdershelt (Author)
>
> "I do not fear computers, I fear the lack of them." -- Isaac Asimov (Author)
> ** *** ***** ******* *********** *************
> SIRC, CID, subversives, 414, Flu, utopia, &
> basement, GEO, Information Security, DSD, cocaine, SIGDEV, Keyhole
> CESID, PRIME, Lexis-Nexis, CTP, DynCorp, gorilla, Recce
>
>
>   



More information about the Omaha-pm mailing list