在远程机器上运行本地脚本

在远程机器上运行本地脚本

我想运行本地机器上的脚本,但它应该在远程机器上执行操作。我已经生成了公钥和私钥,因此不需要密码验证

答案1

ssh是一个优秀的 Unix 公民;我们可以将它通过管道传输,可以重定向它的输出以任何可以想象到的方式输入。

ssh user@host sh < your_script.sh

此命令是重定向:您的 shell 将打开(本地!)文件your_script.sh并将其作为输入提供给ssh命令。ssh反过来,它将把它的标准输入隧道传输到远程命令,即sh实例。 sh不带参数从标准输入读取其脚本。严格来说,这sh部分甚至不是必需的——ssh默认情况下运行 shell——但它使解释更容易。

因此我们得到了一个sh实例,它在远程主机上启动,但从本地文件读取命令。瞧!

答案2

这回答了你的确切问题:bash - 如何在 shell 脚本中使用 ssh? - 堆栈内存溢出

ssh user@host command
#for example
ssh user@host ls

如果您有一个想要执行的大脚本。那么您可以使用 sftp 将脚本复制到远程机器,然后通过上述命令执行它。

相关内容