On Aug 12, 2013, at 11:33 PM, Andreas Schneider <[email protected]> wrote:

> On Monday 12 August 2013 18:47:55 William Orr wrote:
>> On Aug 10, 2013, at 11:59 PM, William Orr <[email protected]> wrote:
>>> On Aug 4, 2013, at 2:20 AM, Andreas Schneider <[email protected]> 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                [email protected]
> 
> 

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!

Reply via email to