Linux

使用 bash 腳本向 SSH 客戶端發送命令?

  • March 20, 2018

大家下午好,

我最近意識到我可以使用<enter>~C轉義序列從遠端 SSH 連接將命令發送回本地工作站,例如:

[root@host ~]# 
[root@host ~]# 
ssh> !ip ad

現在,我希望能夠使用 bash 腳本在我的本地工作站上自動執行命令或執行其他操作,但我無法找到任何以程式方式將命令發送回該 shell 的方法,也找不到任何人其他被詢問/嘗試過的人。需要明確的是,我不是試圖通過 SSH 向遠端伺服器發送命令 - 我試圖通過客戶端從 SSH 連接將命令發送回我的工作站(如上圖所示)。

如果有人有任何建議或知道如何做到這一點,我將非常感謝您的幫助。謝謝!

我認為這是不可能的,因為轉義字元永遠不會到達遠端系統上的 Bash。在遠端 bash 每次設置它之前,它就會被您的本地 SSH 客戶端攔截。

我知道這不是您所要求的,並且根據您的情況可能不可行,但替代解決方案可能會實現您的目標:

通過從遠端機器上通過 SSH 回到本地機器上執行命令:

[root@remote-host ~]# ssh your-local-machine ip ad

由於這是一個安全問題,您將無法在 SSH 連接中從遠端主機執行本地命令。

您逃避連接以傳遞命令的方式是通過終端,即。從本地伺服器。

因此,如果您想通過 SSH 連接同時執行連接和腳本,您可以嘗試查看 expect,但它將通過在另一個應用程序中嵌入或包裝您的 SSH 連接,而不是直接從遠端 shell。

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