通过中间机器使用隧道创建到 VNC 服务器的 ssh 配置

通过中间机器使用隧道创建到 VNC 服务器的 ssh 配置

我最近发现了 ssh 配置文件,可以在其中设置常用的 ssh 连接。但是,我在转换一个将我的计算机连接到隐藏在中间服务器后面的服务器上运行的 VNCServer 的命令时遇到了麻烦。基本上改变这个命令(有效):

ssh -t -L port1:localhost:port2 [email protected] ssh -L port2:localhost:port3 [email protected]

vncviewer localhost:0单独的窗口中,进入 ssh 配置文件。我设法创建一个连接到机器的配置而不抛出任何Failed to set up port消息,但是当我在单独的终端窗口中运行时

vncviewer localhost:0

我收到一个错误。如果 ~/.ssh/config 以这种方式设置(我自己的尝试):

 Host machine1
   HostName machine1.com
   User user1
   LocalForward port1 localhost:port2
   RequestTTY force

 Host machine2
   HostName machine2.com
   User user2
   LocalForward port2 localhost:port3
   ProxyJump machine1

并通过运行运行ssh machine2,然后vncviewer localhost:0在新的终端窗口中错误是"Failed to connect to localhost:0": unable to connect to socket: Connection refused (111).

在我将其设置为提及的情况下这里:

Host machine2
  HostName machine2.com
  User user2
  LocalForward port1 user1@machine1:port2
  LocalForward port2 user2@machine2:port3
  RequestTTY force

我收到一条错误消息:The connection was dropped by the server before the session could be established. 在这两种情况下,我都在终端窗口中连接到 machine2 并且可以浏览内容。但我也想连接到 vncserver。

你能解释一下我在这里做错了什么吗?在创建任何其他 ssh 配置时,我正在查阅这些来源: https://linuxize.com/post/using-the-ssh-config-file/---初学者指南

https://man7.org/linux/man-pages/man1/ssh.1.html--- 查看使用的每个 -t -LI 的定义

https://phoenixnap.com/kb/ssh-config--- 将 -t -L 转换为 ssh 配置命令

https://www.ssh.com/academy/ssh/tunneling-example---解释我是否需要本地转发或远程转发

答案1

第一个配置看起来不错。至于第二种配置LocalForward需要一个hostname并且您已提供,user@address请参阅[1]。

使用您的第一个配置(我在下面编辑了您的第一个配置)并运行

ssh -v -J machine1 machine2 -NL <p1>:localhost:<p2> # -v print ssh debugging messages
# <p1> : port on your computer
# <p2> : vnc port on machine2

编辑ssh配置:

 Host machine1
   HostName machine1.com
   User user1
   #Port 22

 Host machine2
   HostName machine2.com
   User user2
   ProxyJump machine1
   #Port 22
   #LocalForward <p1> localhost:<p2>
   # <p1> port on your computer
   # <p2> port on machine2

[0] ssh with -vflag 可以让您了解您的连接出了什么问题。

[1]https://linux.die.net/man/5/ssh_config

[2] 有关代理跳转的更多信息https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts#Jump_Hosts_--_Passing_Through_a_Gateway_or_Two

[3] 有关代理跳转的更多信息https://www.infoworld.com/article/3619278/proxyjump-is-safer-than-ssh-agent-forwarding.go

相关内容