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

Re: Request a PTY when running a command


On Aug 12, 2013, at 11:33 PM, Andreas Schneider <asn@xxxxxxxxxxxxxx> wrote:

> 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
> 
> 

Hey Andreas,

Thanks for mentioning the pcap API, that's really useful for debugging!

You're right, I can't see that on the wire. Looks like the SSH server must be adding it.

Thanks for the help!

References:
Re: Request a PTY when running a commandWilliam Orr <will@xxxxxxxxxxxx>
Re: Request a PTY when running a commandWilliam Orr <will@xxxxxxxxxxxx>
Re: Request a PTY when running a commandAndreas Schneider <asn@xxxxxxxxxxxxxx>
Archive administrator: postmaster@lists.cynapses.org