将 SSH 从我的笔记本电脑转发到位于远程服务器上的虚拟机

将 SSH 从我的笔记本电脑转发到位于远程服务器上的虚拟机

我有一个远程服务器,其中托管着一个在端口 8000 上运行 Web 服务的 VM。

我希望能够通过笔记本电脑上的 Web 浏览器访问 Web 服务,并且知道:

  1. 我可以通过 SSH 从我的笔记本电脑访问远程服务器
  2. 从服务器,我可以使用 SSH 连接到虚拟机
  3. 无法从服务器直接访问 Web 服务。
  4. 笔记本电脑密钥和服务器密钥是不同的。

如果 Web 服务直接在服务器上运行,我会执行以下操作:

ssh -L 8000:localhost:8000 user@server

它会将我在 localhost:8000 上执行的任何操作通过 SSH 转发到远程服务。如何针对 VM 的情况执行类似操作?

答案1

您可以通过多个跳转建立 SSH 隧道。我不确定我是否理解了您的第 4 点。我猜您的意思是服务器上有一个 SSH 私钥,而 VM 上的公钥允许使用该私钥。

如果是不是在这种情况下,你可以很简单地跳到它:

ssh -J server.ip -L 8000:localhost:8000 vm.ip

如果是这种情况,你需要做类似的事情

ssh -t user@server -L 8000:localhost:8000 ssh -t user@vm -L 8000:localhost:8000

因此基本上您只需链接 SSH 命令,并且可以链接多个命令,只要您跟踪隧道即可。

相关内容