小编Jes*_*ieh的帖子

如何通过SSH执行命令并保持连接打开?

当我跑

FOO=$(ssh -L 40000:localhost:40000 root@1.2.3.4 cat /foo)
Run Code Online (Sandbox Code Playgroud)

我得到 的内容/foo,但随后断开连接。

我想要做的是以某种方式获取内容/foo并保持连接打开,以便端口 40000 仍然转发到同一台服务器。这可能吗?

你可能会问,为什么不像这样发出两个 ssh 连接

FOO=$(ssh root@1.2.3.4 cat /foo)
ssh -L 40000:localhost:40000 root@1.2.3.4 -f -N
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我不能这样做的原因是 ip ( 1.2.3.4) 是一个负载均衡器,它将连接转发到多个随机后端。每次ssh到1.2.3.4不同的机器,/foo每台机器的内容都不一样。此外,我通过转发端口 (40000) 发送的数据取决于/foo. 如果我获取/foo机器 A 上的内容,然后通过端口 40000 将数据发送到机器 B,则无法正常工作。

ssh ssh-tunneling

8
推荐指数
1
解决办法
7581
查看次数

标签 统计

ssh ×1

ssh-tunneling ×1