通过SSH在远程计算机上执行远程脚本

And*_*rew 7 linux ssh bash

我在机器 B 上有一个 bash 脚本,我想在机器 B 上运行它。我现在正在使用机器 A。这可能吗?

到目前为止,如果脚本位于机器 A 上,我只能使用以下命令设法做到这一点:

ssh user@machineb 'bash -s' < /path/machinea/script.sh
Run Code Online (Sandbox Code Playgroud)

我不想在本地复制这个远程脚本。有没有办法通过我的本地机器通过 SSH 在远程机器上运行这个远程脚本?

lny*_*yng 10

来自man ssh

如果指定了命令,它将在远程主机上执行,而不是在登录 shell 上执行。

其中command是 ssh 的最后一个参数

因此,您唯一要做的就是调用:

ssh user@machineb 'bash -s /path/to/script'
Run Code Online (Sandbox Code Playgroud)

基本上,您上面提供的命令将机器 A 的脚本重定向到 ssh,后者通过网络传输脚本并在机器 B 中运行它。在机器 B 上本地运行脚本/命令甚至更少。

  • `-s` 标志对我不起作用。正如`bash` 手册所说,它等待标准输入。我不得不排除`-s` 标志来执行远程脚本。 (6认同)