Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用libssh在远程windows计算机上执行命令_Ssh_Libssh_Remotecommand - Fatal编程技术网

使用libssh在远程windows计算机上执行命令

使用libssh在远程windows计算机上执行命令,ssh,libssh,remotecommand,Ssh,Libssh,Remotecommand,我尝试在远程linux主机上使用libssh执行shell命令,结果成功了。我仿效他们的榜样。但是当在windows远程主机上尝试时,它不起作用(当然我更改了命令)。所以我的问题是:是否可以在windows主机上执行远程命令 编辑: int show_remote_files(ssh_session session){ ssh_channel channel; int rc; channel = ssh_channel_new(session); if (channel == NULL) ret

我尝试在远程linux主机上使用
libssh
执行shell命令,结果成功了。我仿效他们的榜样。但是当在windows远程主机上尝试时,它不起作用(当然我更改了命令)。所以我的问题是:是否可以在windows主机上执行远程命令

编辑:

int show_remote_files(ssh_session session){
ssh_channel channel;
int rc;
channel = ssh_channel_new(session);
if (channel == NULL) return SSH_ERROR;
rc = ssh_channel_open_session(channel);
if (rc != SSH_OK)
 {
  ssh_channel_free(channel);
  return rc;
 }
rc = ssh_channel_request_exec(channel, "dir");
if (rc != SSH_OK)
 {
ssh_channel_close(channel);
ssh_channel_free(channel);
return rc;
 }
char buffer[256];
int nbytes;
nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
while (nbytes > 0)
{
  if (fwrite(buffer, 1, nbytes, stdout) != nbytes)
  {
    ssh_channel_close(channel);
    ssh_channel_free(channel);
    return SSH_ERROR;
  }
  nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
}
if (nbytes < 0)
{
  ssh_channel_close(channel);
  ssh_channel_free(channel);
  return SSH_ERROR;
}
int显示远程文件(ssh会话){
ssh_信道;
int rc;
channel=ssh\u channel\u new(会话);
if(channel==NULL)返回SSH\u错误;
rc=ssh\u channel\u open\u会话(channel);
如果(rc!=SSH\u确定)
{
ssh_信道_空闲(信道);
返回rc;
}
rc=ssh\u channel\u request\u exec(channel,“dir”);
如果(rc!=SSH\u确定)
{
ssh_通道_关闭(通道);
ssh_信道_空闲(信道);
返回rc;
}
字符缓冲区[256];
整数字节;
nbytes=ssh\u channel\u read(通道,缓冲区,sizeof(缓冲区),0);
而(n字节>0)
{
if(写入(缓冲区,1,N字节,标准输出)!=N字节)
{
ssh_通道_关闭(通道);
ssh_信道_空闲(信道);
返回SSH_错误;
}
nbytes=ssh\u channel\u read(通道,缓冲区,sizeof(缓冲区),0);
}
如果(n字节<0)
{
ssh_通道_关闭(通道);
ssh_信道_空闲(信道);
返回SSH_错误;
}

“它不起作用”,我的意思是服务器没有响应。

请将您的问题包括在源代码中,并详细描述运行它时发生的情况。不要只说“它不起作用”。我认为问题非常清楚,“那么我的问题是,是否可以在windows主机上执行远程命令?”(当然使用libssh)我使用的源代码来自我发布的链接中的源代码,但我将复制/粘贴。我希望您在看到代码后有一个答案。因此,您的代码运行到完成,但是“dir”没有生成任何输出?是否正确?或者您是否在某个地方遇到错误?如果遇到错误,是哪一行生成的,以及消息的确切含义?@Kenster代码运行到完成时,dir没有生成任何输出。我猜问题出在ssh服务器上。我使用pa使用pyhton实现了一个客户端和一个服务器ramiko,它运行良好(能够远程执行windows命令)。我将尝试使用libssh实现我自己的ssh服务器。