从c#应用程序远程运行sudo命令时出现问题。

从c#应用程序远程运行sudo命令时出现问题。,c#,linux,ssh,remote-access,C#,Linux,Ssh,Remote Access,我正在用c#编写一个实用程序来获取远程机器的系统信息。在某些Linux机器中,不允许直接登录到root,我正在运行的某些命令需要root权限。我能够建立SSH会话(我使用Renci SSH库进行同样的操作) 研究使我相信在这种情况下我需要使用sudo。但当我像这样远程使用sudo时,它不起作用 代码的第一部分在我获得root访问权限时工作。其中不允许直接根访问-第一部分不返回任何内容,第二部分使用sudo也不返回任何内容)。请参阅我正在使用的代码(客户端是分配给SshClient的名称) 我对L

我正在用c#编写一个实用程序来获取远程机器的系统信息。在某些Linux机器中,不允许直接登录到root,我正在运行的某些命令需要root权限。我能够建立SSH会话(我使用Renci SSH库进行同样的操作)

研究使我相信在这种情况下我需要使用sudo。但当我像这样远程使用sudo时,它不起作用

代码的第一部分在我获得root访问权限时工作。其中不允许直接根访问-第一部分不返回任何内容,第二部分使用sudo也不返回任何内容)。请参阅我正在使用的代码(客户端是分配给SshClient的名称)

我对Linux不太了解。请求指导如何处理此问题

client.RunCommand("cat /proc/cpuinfo | grep model | grep name");
client.RunCommand("dmidecode -s system-manufacturer");

client.RunCommand("sudo cat /proc/cpuinfo | grep model | grep name");
client.RunCommand("sudo dmidecode -s system-manufacturer");

这就是我最终的工作。为那些有类似问题的人发布

  • requirety应该在sudo文件中注释掉,或者设置为特定用户不需要

  • 命令结构应如下所示:

    echo <password> | sudo -S <linux command>"
    
    echo | sudo-S”
    

  • 首先在支持ssh(git bash?)的终端上手动尝试这些命令,然后从c#运行它们。这样,你就会看到出了什么问题。现在你只是闭着眼睛画墙……谢谢Wouter。我确实在一些“远程”终端上直接尝试了这些命令“机器和终端。他们直接在终端上工作。但不是通过c。我也会按照你的建议尝试使用ssh终端。使用putty并远程连接。很好。