想为ssh会话

时间:2017-06-26 20:56:20

标签: docker ssh portforwarding

enter image description here我有 X机器,端口yyyy ,还在机器 A,端口bbbb 中运行docker容器。我想总是向用户提供 ssh user @ X -p yyyy ,但是当用户使用X:yyyy执行ssh时,我希望ssh会话自动转发到机器答:端口bbbb 。 (用户不应该觉得他正在连接不同的机器) 将来,如果我在机器C,端口dddd 中旋转相同的docker容器。我不希望用户使用新的计算机名称和端口,我希望用户继续使用x:yyyy但会话转发到c:dddd。我该怎么做呢 ?我希望机器动态x:yyyy指向c:dddd,我如何按照语法配置呢? (用户需要在Putty中保存相同的会话详细信息)

对于罗伯特的评论,我添加了一张图片来解释带有图片描述的问题

我解决了这个问题,并在下面为这个问题添加了答案。

2 个答案:

答案 0 :(得分:0)

我找到了一种方法来进行SSH端口转发,想与所有人共享

以下工作: ssh端口转发 登录到机器X

  1. ssh -L 0.0.0.0:yyyy:machineA:bbbb -f -C -q -N user@machineA
  2. 能够通过ssh machinex -p yyyy从桌面进入docker             注意:此命令要求我们首次保存凭据

    我发出了以下命令:

  3.   

    ssh user @ machineX -p yyyy

    但是我遇到了机器A:bbbb

    enter image description here

    为了动态实现这一点,我运行了一个带有shell模块的Ansible playbook,在X-machine中运行此命令(来自远程机器)

答案 1 :(得分:0)

您可以使用 autossh 进行此类端口转发。

我使用相同类型的方法来连接受防火墙保护的机器。

要实现这一点,首先需要machineA在端口yyyy上的machineX上自动连接:localhost:22

autossh -N -f -R yyyy:localhost:22 username@IP_ADDRESS_MACHINE_X

然后从machineX您可以轻松连接到machineA。

如果使用ssh密钥进行配置,则用户无需输入密码。

请查看博客:AutoSSH in UBUNTU