Ssh

如何通過 ssh 在遠端機器上執行本地 bash 腳本?

  • May 25, 2021

我正在尋找一種將配置從一台中央機器推送到多台遠端機器的方法,而無需在遠端機器上安裝任何東西。

cfengine目的是在一組沒有設置代理的機器上做一些你會發現的事情,比如。這實際上可能是cfagent在一組現有遠端機器上設置的好技術。

您可以傳遞一個腳本並通過管道將其導入並執行一個 shell 來使其臨時執行。

例如

echo "ls -l; echo 'Hello World'" | ssh me@myserver /bin/bash

自然地,該"ls -l; echo 'Hello World'"部分可以替換為儲存在本地電腦文件中的 bash 腳本。

例如

cat script.sh | ssh me@myserver /bin/bash

乾杯!

有幾種方法可以做到這一點。

1:

ssh user@remote_server 'bash -s' < localfile

2:

cat localfile  | ssh user@remote_server

3:

ssh user@remote_server "$(< localfile)"

數字 3 是我的首選方式,它允許互動式命令,例如sudo -S service nginx restart

(當您使用 時,#1 和 #2 將使用腳本的其餘部分作為密碼問題的輸入sudo -S。)

引用自:https://serverfault.com/questions/215756