集中对许多设备的 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

每个客户端都需要连接到单独的端口

要允许其他客户端使用这些会话(如客户端 1 -> 服务器 <- 客户端 2),只需从客户端通过 SSH 连接到服务器,然后像上面一样连接到隧道

列表哪些客户端连接在哪些端口上,您可以在服务器(linux)上运行此命令:

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

相关内容