作为 su 执行命令

作为 su 执行命令

我正在执行此命令作为su.我已经与(使用 sshNet)建立了连接SSH,然后当我尝试设置命令时su -,我没有得到任何响应。我有密码和我想在登录后执行的命令su

我的代码,我知道是错误的,现在看起来像这样:

using (var sshClient = new SshClient("10.10.8.113","ems", "ems"))
{
    sshClient.Connect();
    sshClient.CreateCommand("su -").Execute();
    sshClient.CreateCommand("123456").Execute();
    sshClient.CreateCommand("EmsMenu.sh");
}

我读到了有关使用 Shell 实施的内容,但我没有以这种方式取得成功。

答案1

失败的原因是,默认情况下,不会在目标计算机上ssh创建终端 (a )。pty这意味着su无法提示输入密码,因此失败。 (sudo出于同样的原因,也将无法提示,除非给出标志-S- 正如 @Scott 所指出的。)

  1. 您可以告诉在远程系统上ssh创建一个终端 ( ),以便提示输入密码。使用普通命令,您可以通过向 ssh 提供标志来完成此操作。不幸的是,我无法为您提供任何有关执行此操作的方法的帮助ptysu-tSSH.NET因为它的文档是以CHM格式提供的,我无法打开。

  2. su您可以通过使用所需的目标用户帐户“root”连接到远程服务器来完全删除该部分。出于安全原因,这可能会在某些拒绝尝试使用密码的 root 登录的系统上失败,因此您可能需要研究基于证书的登录。可以使用命令生成合适的证书ssh-keygen -t rsa

答案2

sudo是否可以在要执行的命令之前使用?喜欢而不是:

su
whatever command

做:

sudo whatever command

相关内容