Libssh远程命令未在服务器上执行

时间:2013-06-19 18:59:12

标签: c exec libssh

阅读了相关的docstutorials并发现了similar问题后,我仍然无法继续。如果这是一个常见问题,请提前告知我。我做了搜索,但我不确定我在寻找什么...

我正在Debian中试验用于C的Libssh。

rc = ssh_channel_request_exec(channel, "ls -l");
if (rc != SSH_OK) {
  ssh_channel_close(channel);
  ssh_channel_free(channel);
  return rc;
}

返回SSH_OK以表明命令已成功发送。正如我从similar问题中理解的那样,这是因为返回侦听成功的“发送”命令。返回不会监听是否已成功执行。

我的问题是,我该怎么做:

  • 执行命令(由上述功能当前不执行它只发送命令)
  • 听取它的执行
  • 打印返回的输出?

我知道ssh_channel_read()函数但是由于命令永远不会执行,我通常会得到输出

 Read (256) buffered : 0 bytes. Window: 64000

1 个答案:

答案 0 :(得分:0)

看看libssh源代码中的examples / exec.c!