如何在 SSH 會話中在本機電腦上發出命令?

如何在 SSH 會話中在本機電腦上發出命令?

範例用例:

  1. 我正在使用運行 Mac OS X 的筆記型電腦(A)並登入我的開發伺服器()透過 SSH。
  2. 我有一個腳本,它將為我目前在編輯器中打開的文件/分支生成 GitHub URL()。
  3. 我想在我的筆記型電腦上的瀏覽器中開啟該 URL(A)。

其他用例可能包括:

  • 每次儲存檔案時刷新瀏覽器
  • 當我發出聲音時在本地播放歌曲git指令
  • 開啟我已簽出的分公司對應的 Jira 工單。

答案1

您可以使用 SSH 反向隧道。它的工作原理是這樣的;在您在這裡使用的電腦上執行此操作,remote_server是遠端伺服器的名稱:

ssh -R 13000:localhost:22 remote_server

並在您的圖像中local machine顯示remote server

ssh <USERNAME>@localhost -p 13000 "DISPLAY=:0 ristretto <IMAGE>"

編輯: Mac OS 機器上可能沒有安裝 X 伺服器,我不使用它,但整體思路保持不變。使用反向隧道的優點是您的本機電腦不必具有公用 IP 位址。

答案2

這可能不是解決此問題的最優雅的方法,但是,由於您使用的是Mac OS X,如果您已經遠端連接到另一台計算機,我唯一能想到的就是向您的主機發出SSH 命令,如下所示。最大的先決條件是您需要在 Mac OS X 筆記型電腦上啟動並執行 SSH 伺服器,並確保路由器的防火牆規則允許連接埠 22 上的 SSH 連線才能正常運作。

因此,我們假設您的筆記型電腦已命名machineA,並且您想要http://google.com從遠端電腦開啟一個 URL()那麼你只需在機器上發出這個 SSH 命令

ssh username@machineA 'open http://google.com'

這將啟動連接回本機的 SSH 並執行命令,該命令open http://google.com將開啟一個瀏覽器視窗(基於您的預設瀏覽器),該視窗將轉到傳遞給它的 URL;http://google.com

相關內容