【问题标题】:How do i connect to a private host using a public host?如何使用公共主机连接到私有主机?
【发布时间】:2016-02-13 10:04:20
【问题描述】:

服务器 B 连接到位于 192.168.1.130 的专用网络。 服务器 A 可以通过其公共 ip 使用 ssh 进行连接; 132.x.x.x. 我将如何使用 ssh 连接到 B,以便它首先连接到 A,从那里建立到 B 的连接,因为 B 不能直接从外部网络连接到。 我想限制自己做的是: user@local:$ssh a@A

a@A : $ssh b@B

相反,我正在寻找以下方面的工作:

user@local:$ssh b@B

它在内部连接到 a@A,然后连接到 b@B。

我将如何为一组 ubuntu 服务器实现这一点?

我已尝试编辑 ~/.ssh/config 以包含

 Host A
    User a
    HostName 192.x.x.x
 Host B
    User b
    ProxyCommand ssh -q A nc -q0 192.x.x.x 22

当从“a@A”运行 b@B 时,我得到了通过 a 连接到 b 的所需输出(尽管毫无意义)。对于无法在其系统上编辑配置文件或类似文件的用户,我该如何实现这一点。

PS:A 有一个 public ip,而 B 仅限于 private ip。

编辑:编辑示例代码以正确暗示我的意思

【问题讨论】:

  • 我想要实现的是告诉全世界,如果你想访问 B 使用 "ssh b@B" 。我不想告诉他们服务器 A 本身,而是我希望服务器 A 自动重定向请求通过 A 自动访问 B 的用户。另外,我所拥有的是 A 和 B 都指向同一个主机,即 A 。因此 a@B 与 a@A 相同。

标签: networking ssh server


【解决方案1】:

使用ProxyCommand 的首选方式是使用-W 开关。 nc 版本需要在 jumpbox 上安装 netcat

 Host A
    User a
    HostName 192.x.x.x
 Host B
    User b
    ProxyCommand ssh -W %h:%p A

请注意,字母大小写很重要!您的示例中有大写用户。在您知道它可以正常工作之前,也不要将-q 开关放在那里。如果没有,请在两个ssh 命令中添加一些-vvv,以查看那里发生了什么以及失败了。

【讨论】:

  • 啊,很有趣,我不知道 SSH 现在为此目的嵌入了 netcat 功能。很酷的功能! (虽然我想知道它是否有任何有趣的安全隐患......)
【解决方案2】:

显然 ProxyCommand 可以通过-o 在命令行上传递;不太漂亮,但似乎是预期的方法。

https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

不过,请注意,我认为您可能已经弄错了 A/B 中的哪一个是公共/私有的,因为您的初始段落似乎与您的最终陈述相矛盾。

更多关于精确解决方案http://www.cyberciti.biz/faq/linux-unix-ssh-proxycommand-passing-through-one-host-gateway-server/ 的详细信息以及图表。

【讨论】:

  • '$ ssh -tt A ssh -tt B' 工作得很好,可以完成我需要的工作。然而,一个命令是否可能与上面的命令相同,但不列出 A。此外,作为一项要求,也可以让 B 指向 A 的 IP 地址。虽然我的主要要求是通过 A 隧道到 B
  • 啊;听起来您有一些不兼容的要求,例如(1)根本不编辑配置文件,以及(2)不在命令行中列出 A 。在这种情况下,除非你有一个脚本或其他列出 A 的东西,否则 SSH 无法知道主机 A,据我所知。
  • 假设用户 x 正在从一个公共 ip 连接并且他希望连接到主机 B;我需要的是他输入 ssh b@B 。但是,B 与 A 共享相同的 IP。即。他们都被重定向到 a@A 。然后系统 A 知道请求不是针对它,而是发给主机 B,然后将用户 x 重定向到主机 B 或 b@B。
  • 我也可以在 A 和 B 上设置相同的用户 a,因此 a@A 和 a@B 是有效的。我还可以随意修改系统 A 上的任何文件以允许这种重定向。这样的用例是否可能使得 x 只能输入 a@B 或 b@B 并成功重定向到主机 B?
  • B 类似于 xyz.com 指向 IP 139.x.x.x,A 类似于 abc.com 也指向 IP 139.x.x.x。但是 B 有一个私有 ip 也说 192.x.x.x。这样的重定向是否可能。这是前两个 cmets 的延续;只是进一步阐述我的要求。
猜你喜欢
  • 2022-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
相关资源
最近更新 更多