以 sudo 身份通过 SSH 运行多个命令

use*_*638 3 linux ssh bash

我试图通过 SSH 以 sudo 身份运行命令,但没有成功:

ssh -t -p 2222 name@server /usr/bin/sudo << EOF
  chmod u-r /xy 
  chmod +x /xy
  /xy
  sleep 5
  ps aux | grep xy
  sleep 5
  exit
EOF
Run Code Online (Sandbox Code Playgroud)

这是行不通的。没有 -t 和 /usr/bin/sudo:

sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)

单行命令正在工作:

ssh -p 13001 -t name@server 'sudo /xy'
Run Code Online (Sandbox Code Playgroud)

Jay*_*Jay 10

这应该有效:

ssh -t -p 2222 name@server "/usr/bin/sudo bash -c 'chmod u-r /xy; chmod +x /xy; ...'"
Run Code Online (Sandbox Code Playgroud)