无法使用命令提示符执行SSH

时间:2019-09-26 07:10:41

标签: c linux ssh popen

我正在尝试建立到远程服务器的SSH连接以执行某些命令。我需要在最终程序中接受CLA,因此我试图从命令提示符处执行。给出了示例代码

#include <stdio.h>
#define PATH_MAX 128

int main(void){

    FILE *fp;
    char path[PATH_MAX];

    fp = popen("ssh user@HOST \"command\"", "r");
    if (fp == NULL)
       /* Handle error */;

    while (fgets(path, PATH_MAX, fp) != NULL)
    printf("%s", path);
    fclose(fp);
    return 0;
}

使用DevC ++可以很好地执行代码,但是当我从Command提示符下执行该代码时,它不会执行并给出以下消息:“ 'ssh'未识别为内部或外部命令, 可操作的程序或批处理文件。” 我同时尝试了 system(“某些命令”)和popen()。两者都可以在DevC中正常工作,但是从命令提示符执行时会给出相同的消息。 我正在安装MinGW gcc版本8.2.0(MinGW.org GCC-8.2.0-3)

2 个答案:

答案 0 :(得分:0)

SSH.exe必须在Windows PATH中。程序运行时,它可能不在您的配置文件下运行。

它可能正在未定义相同PATH的系统概要文件下运行。您可以检查程序和/或更新PATH或使其专门在您的个人资料下运行。

答案 1 :(得分:0)

因此,即使所需路径位于系统变量下,但该程序似乎仍在用户变量下执行。因此,只需在“用户变量”下添加相同的路径(即 C:\ Windows \ System32 \ OpenSSH )即可解决此问题。