將 SSH 存取集中到許多設備?

將 SSH 存取集中到許多設備?

我想透過 SSH 連接到一些端點,以便Powershell Remoting我可以執行自動化腳本。

我如何集中訪問?

  1. 端點將連接SSH到中央伺服器
  2. 端點將保持此SSH連線打開
  3. 我需要透過 SSH 建立對終止於伺服器的端點的通用存取。透過通用訪問,我的意思是同一網路上的設備理想情況下能夠將這些開放SSH連接用於任何SSH目的。

我對第3步有點困惑。

  • 我是否只能SSH透過在中央伺服器上執行 、 等Powershell來執行遠端操作PuTTY並進行連線?Remote Desktop
  • 我是否能夠透過該SSH伺服器將 SSH 連接「引入」通用網絡,以便同一網路上的設備可以透過中央伺服器透過 SSH 連接到系統?
  • 是否有更好的方法讓多個端點透過 SSH 連接到中央伺服器以運行同一網路上的設備中的Powershell、 運行Remote Desktop或其他項目?SSH

設備可以是WindowsLinux

我正在猜測:

  • 來自多個遠端網路的每個端點都透過 SSH 連接到 Lan X 上的 SSH 伺服器
  • Lan X 上的設備需要透過 SSH 連接到 Lan X 上的 SSH 伺服器
  • 透過 SSH 連接到 SSH 伺服器後,Lan X 上的裝置現在可以Powershell在端點上執行腳本和其他 SSH 項目

答案1

在你的第一個場景中,你有

  1. 客戶端--SSH->伺服器
  2. 用戶端使用此連線等待來自伺服器的 SSH 會話
  3. 伺服器--SSH->客戶端,運行命令等

這被稱為ssh反向隧道,而且設定起來非常簡單:

# On client, create an open tunnel from Client:22 -> Server:2222
ssh -R 2222:localhost:22 user@Server

# On server, connect to local 2222, and you're connected to that session
ssh -p 2222 user@localhost

每個客戶端需要連接到單獨的端口

若要允許其他用戶端使用這些會話(例如 Client1 -> Server <- Client2),只需從客戶端到伺服器的 SSH,然後像上面一樣連接到隧道

清單哪些客戶端連接在哪些連接埠上,您可以在伺服器(linux)上運行它:

 % sudo lsof -i -n | egrep '\<sshd\>'

相關內容