我有几个端点想要通过 SSH 连接,以便Powershell Remoting
我可以运行脚本来实现自动化。
我如何才能集中访问?
- 端点将连接
SSH
到中央服务器 - 端点将保持此
SSH
连接打开 - 我需要通过 SSH 创建对终止于服务器的端点的通用访问。所谓通用访问,是指理想情况下,同一网络上的设备能够利用这些开放
SSH
连接来达到任何SSH
目的。
我对步骤 3 有点困惑。
- 我是否只能
SSH
通过在中央服务器上运行、等Powershell
来执行远程操作PuTTY
并进行连接?Remote Desktop
- 我是否能够通过该
SSH
服务器将 SSH 连接“引入”到通用网络,以便同一网络上的设备可以通过中央服务器通过 SSH 连接到系统? - 有没有更好的方法让多个端点通过 SSH 连接到中央服务器以从同一网络上的设备运行
Powershell
、运行Remote Desktop
或其他项目?SSH
设备可以是Windows
或Linux
我正在猜测:
- 来自多个远程网络的每个端点都通过 SSH 连接到 Lan X 上的 SSH 服务器
- Lan X 上的设备需要通过 SSH 连接到 Lan X 上的 SSH 服务器
- 一旦通过 SSH 连接到 SSH 服务器,Lan X 上的设备现在就可以
Powershell
在端点上运行脚本和其他 SSH 项目
答案1
在你的第一个场景中,你有
- 客户端--SSH->服务器
- 客户端使用此连接等待服务器的 SSH 会话
- 服务器--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\>'