bash - 异步运行ssh sudo

标签 bash ssh sudo

我正在尝试在远程计算机上使用sudo运行命令。当我直接用

ssh -t -t -t myserver -q "sudo otheruser<<EOF
remotescript.sh
EOF"

它工作正常,但是如果我在最后一行的末尾添加&,那么它将无法正常工作。为什么?我该如何运作?

我实际上从本地脚本运行了几个这样的命令(到不同的服务器),并将每个输出保存在不同的文件中,希望它们异步运行

注意:不能与otheruser @ myserver一起运行ssh。登录后,我真的需要运行sudo。

最佳答案

从远程计算机上的sudo配置(/ etc / sudoers)中删除 requiretty

还要在ssh中添加-f选项,这会将命令置于后台(man:“当ssh在后台运行时必须使用”)。

使用-f时,不需要“&”。

例如:

ssh -f -t -t -t myserver -q "sudo otheruser<<EOF
remotescript.sh
EOF"

关于bash - 异步运行ssh sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18249164/

相关文章:

linux - 使用 consolehelper 时出现 'Insufficient rights' 和 'userhelper must be setuid root' 错误/警告

linux - 我怎样才能将目录复制到其他地方(也许是临时目录)并确保它与原始目录保持同步?

linux - 在特定端口停止 ssh 服务

github - 将(私有(private))Github 存储库克隆到 EC2

ssh - 在 Pycharm 中配置 SFTP

执行 "sudo -s"命令时,c 程序挂起/循环

node.js - sudo: npm: 在 WSL 中找不到命令

php - 如何在shell脚本中无限次运行php文件

linux - 有人可以告诉我 <<< 和 <<< 之间的区别,或者告诉我在哪里可以找到此信息

git - 配置存储库以使用我的RSA key