Hi Jakub,

Thanks a lot for your inputs.
You are absolutely correct, ssh_channel_request_exec will not work with 
ssh_channel_request_shell.
Now I'm trying with ssh_channel_write(channel, command, command.length()) to 
execute command on server.

Use of this API(ssh_channel_write) is very complex and  & does not look that 
good.  If we can come up with something like ssh_channel_request_exec , would 
be of great addition to Libssh.

Regards,
Nagraju

-----Original Message-----
From: Jakub Jelen <jje...@redhat.com> 
Sent: Monday, June 22, 2020 3:56 PM
To: libssh@libssh.org
Subject: Re: ssh_channel_request_exec is Failing, returning -1.

On Mon, 2020-06-22 at 05:18 +0000, V Sidnal, Nagraju wrote:
> Hi Jakub,
> 
> I tried  same with Default SSH server running on Debain 9.  However it 
> still failed..
> channel = ssh_channel_new(my_ssh_session); rc =  
> ssh_channel_open_session(channel);
>  rc = ssh_channel_request_pty(channel); rc =  
> ssh_channel_request_shell(channel);
>  rc = ssh_channel_request_exec(channel, command.c_str());

If you open shell already, request_exec is no longer possible in that 
particular channel. At that point, the shell is already running in the server 
and you can run commands there by sending data to it and reading data as 
described in tutorial:

https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapi.libssh.org%2Fstable%2Flibssh_tutor_shell.html&amp;data=02%7C01%7Cnagraju.sidnal%40siemens.com%7C7a79d7d08f764027d8c008d816987b32%7C38ae3bcd95794fd4addab42e1495d55a%7C1%7C0%7C637284191441644474&amp;sdata=jdj%2Fh2%2FLNiBr28Qd8%2F6e%2FQIhJRXcM3aRej89jusmtHE%3D&amp;reserved=0

If I read the logs right, device does not allow you to exec command directly, 
but allows only shell access.

Hope it helps,
--
Jakub Jelen
Senior Software Engineer
Security Technologies
Red Hat, Inc.


Reply via email to