[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Request a PTY when running a command


On Monday 12 August 2013 18:47:55 William Orr wrote:
> On Aug 10, 2013, at 11:59 PM, William Orr <will@xxxxxxxxxxxx> wrote:
> > On Aug 4, 2013, at 2:20 AM, Andreas Schneider <asn@xxxxxxxxxxxxxx> wrote:
> >> On Tuesday 30 July 2013 09:14:59 William Orr wrote:
> >>> Hi all,
> >>> 
> >>> I'm trying to execute a command with sudo. sudo requires that I provide
> >>> it
> >>> with an ask pass program or have a PTY.  Currently I have code that
> >>> exec's
> >>> a program on the remote end (called wshd, wshd exec's sudo), and then
> >>> requests a PTY. This code returns an error reading "Channel request
> >>> pty-req
> >>> failed." If I request a PTY prior to exec'ing a command, wshd never gets
> >>> exec'd.
> >>> 
> >>> What I'm trying to do here is similar to `ssh -t <hostname> sudo
> >>> whoami`,
> >>> which exec's sudo, but also forces allocation of a PTY.
> >>> 
> >>> I'm using libssh 0.5.4 on RHEL 6.1. Let me know if you need more
> >>> information.
> >>> 
> >>> http://bpaste.net/show/118708/
> >> 
> >> Did you read our tutorial?
> >> 
> >> http://api.libssh.org/master/libssh_tutor_shell.html
> >> 
> >> 
> >> Cheers,
> >> 
> >> 	-- andreas
> > 
> > Thanks for the help.
> > 
> > Now that I've converted my code, I'm having trouble sending more data over
> > stdin. I can execute commands just fine. But the command I'm executing
> > takes binary data from stdin. When I was executing it with
> > wsh_channel_request_exec, I could send binary data to it's stdin just
> > fine. Now that I'm requesting a shell and then executing it, it gets 0s
> > for data. The data hasn't changed, nor does it seem to depend on the data
> > I'm sending. I've ensured that I'm sending non-zero data.
> > 
> > My code worked prior to switching to request_shell.
> 
> I found the source of the problem: libssh is sending out an extra null byte
> before writing my data to stdin. Is there any particular reason for that?
> This did not happen with exec.

The libssh code doesn't send an extra null byte. At least I don't see 
something in the code.

Are you sure libssh is sending it?
Are you sure the ssh server is not adding it?
Can you see it on the wire (ssh_set_pcap_file)?


	-- andreas

-- 
Andreas Schneider                   GPG-ID: F33E3FC6
www.cryptomilk.org                asn@xxxxxxxxxxxxxx


Follow-Ups:
Re: Request a PTY when running a commandWilliam Orr <will@xxxxxxxxxxxx>
References:
Re: Request a PTY when running a commandWilliam Orr <will@xxxxxxxxxxxx>
Re: Request a PTY when running a commandWilliam Orr <will@xxxxxxxxxxxx>
Archive administrator: postmaster@lists.cynapses.org