透過SSH替換並開啟stdin/stdout


簡介

在遠端訪問方面,SSH(安全外殼)是最廣泛使用的安全通訊協議之一。它允許使用者遠端訪問和控制伺服器,並允許安全地傳輸資料。但是,有時您可能需要透過SSH替換並開啟stdin/stdout以提高遠端訪問過程的效率。本文將解釋如何操作,並附帶示例。

瞭解stdin和stdout

在深入瞭解細節之前,讓我們首先了解stdin和stdout是什麼。在基於Unix的系統中,stdin是一個檔案描述符,代表標準輸入流。它用於從鍵盤或任何其他輸入源讀取資料。類似地,stdout是一個檔案描述符,代表標準輸出流。它用於將資料寫入控制檯或任何其他輸出目標。

透過SSH替換stdin和stdout

建立SSH連線時,stdin和stdout會自動對映到本地終端。但是,有時您可能希望將它們替換為其他輸入/輸出源以提高遠端訪問過程的效率。

替換stdin和stdout的一種方法是使用SSH命令列選項“-n”。此選項將stdin重定向到/dev/null,並將stdout重定向到本地終端。這意味著任何輸入或輸出資料都將透過SSH連線傳送到遠端伺服器。這是一個示例:

$ ssh -n user@remotehost 'echo "hello world"'

在此示例中,“-n”選項將stdin和stdout分別替換為/dev/null和本地終端。“echo "hello world"”命令在遠端伺服器上執行,輸出傳送回本地終端。

另一種替換stdin和stdout的方法是使用SSH命令列選項“-N”。此選項建立SSH連線,無需在遠端伺服器上開啟shell。這意味著您可以使用stdin和stdout透過SSH連線執行命令或傳輸檔案。這是一個示例:

$ ssh -N user@remotehost 'ls -l /'

在此示例中,“-N”選項將stdin和stdout替換為SSH連線。“ls -l /”命令在遠端伺服器上執行,輸出透過SSH連線傳送回本地終端。

透過SSH開啟stdin和stdout

透過SSH替換stdin和stdout後,您可能希望再次開啟它們以與遠端伺服器互動。為此,您可以使用SSH命令列選項“-t”。此選項強制在遠端伺服器上分配偽終端,允許您像坐在它前面一樣與它互動。這是一個示例:

$ ssh -t user@remotehost 'vim /path/to/file'

在此示例中,“-t”選項再次開啟stdin和stdout,並強制在遠端伺服器上分配偽終端。“vim /path/to/file”命令在遠端伺服器上執行,Vim編輯器在偽終端中開啟。您現在可以像坐在遠端伺服器前面一樣編輯檔案。

透過SSH替換和開啟stdin/stdout的好處

透過SSH替換和開啟stdin/stdout具有以下幾個好處:

  • 提高安全性 - 當您將stdin和stdout替換為其他輸入/輸出源時,您可以降低任何惡意輸入或輸出危及遠端伺服器安全性的風險。如果您正在執行敏感命令或透過SSH連線傳輸敏感資料,這一點尤其重要。

  • 提高效率 - 透過將stdin和stdout替換為其他輸入/輸出源,您可以透過SSH連線執行命令或傳輸檔案,而無需在遠端伺服器上開啟shell。這可以節省時間並減少建立遠端訪問會話所需的資源。

  • 提高控制 - 透過再次開啟stdin和stdout,您可以像坐在它前面一樣與遠端伺服器互動。這使您可以更好地控制遠端訪問會話,並允許您解決可能出現的任何問題。

透過SSH替換和開啟stdin/stdout的技巧

以下是一些在透過SSH替換和開啟stdin/stdout時需要注意的技巧:

  • 替換stdin和stdout時要小心 - 如果您將stdin和stdout替換為其他輸入/輸出源,請確保您使用的是受信任的源,不易受到操縱或篡改。

  • 謹慎使用“-t”選項 - 雖然使用“-t”選項再次開啟stdin和stdout很方便,但這也有安全風險。在使用此選項之前,請確保您信任遠端伺服器和您正在執行的命令。

  • 使用SSH金鑰進行身份驗證 - 不要使用密碼來驗證您的SSH連線,請使用SSH金鑰。這是一種更安全的身份驗證方法,可以降低未經授權訪問遠端伺服器的風險。

結論

透過SSH替換並開啟stdin/stdout可以提高遠端訪問過程的效率。透過將stdin和stdout替換為其他輸入/輸出源,您可以透過SSH連線執行命令或傳輸檔案,而無需在遠端伺服器上開啟shell。透過再次開啟stdin和stdout,您可以像坐在它前面一樣與遠端伺服器互動。透過本文提供的示例,您可以開始在您自己的SSH連線中使用這些功能。

更新於:2023年3月3日

瀏覽量:595

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.