0

来自grunt-ssh的第 143期:

我正在尝试执行以下操作:

  1. 以普通用户身份通过​​ ssh 连接
  2. 切换到root用户并执行具有权限的命令,例如:ls /root
  3. 退出根
  4. 以普通用户的身份关闭连接(这可能是可选的)

我有这个配置

sshexec: {
  test: {
    command: [
      'su',  // switch to root user
      'ls /root',  // execute command with privileges
      'exit',  // exit root session
    ],
    options: {
      host: '<%= env.host %>', // host connection
      username: '<%= env.username %>',  // regular user
      password: '<%= env.password %>',  // regular user password
      pty: true,
    }
  }
}

来自文档:

pty:布尔值/对象

设置为 true 以分配具有默认值的伪 tty,或包含特定伪 tty 设置的对象(请参阅“伪 TTY 设置”)。在处理期望从实际终端输入的远程进程(例如 sudo 的密码提示)时,设置伪 tty 可能很有用。

显然没有办法(或至少是示例)来执行我正在搜索的内容,但我认为这样的用例不会很奇怪。是否可以使用此库实现上述步骤?有人可以提供有关可能的 pty 对象配置的更多信息,以及有关它的优点/限制吗?

重要的

由于主机的安全措施,我不能:

  1. 直接以 root 身份通过 ssh 连接
  2. 将密码传递给 sudo 命令,例如:“echo | sudo -S ls /root”
4

0 回答 0