通过 SSH 一步建立客户端 VNC 连接(例如,使用 -via 选项)

通过 SSH 一步建立客户端 VNC 连接(例如,使用 -via 选项)

如何将这两个命令减少为一个?我正在从客户端连接到 x11vnc 服务器,下面的两个命令已经可以工作。我只想一步一步完成:

第一个命令:

ssh -fNL 5901:localhost:5678 -i ~/.ssh/some_id_rsa [email protected]

第二:

vncviewer localhost:5901

从阅读手册页来看,-via 选项似乎可以做到这一点。不幸的是,手册页让我非常困惑。作为参考(不是我理解的),这是我的手册页所说的:

   -via gateway
          Automatically create encrypted TCP tunnel to the gateway machine before con‐
          nection, connect to the host through  that  tunnel  (TightVNC-specific).  By
          default,  this  option  invokes SSH local port forwarding, assuming that SSH
          client binary can be accessed as /usr/bin/ssh. Note that when using the -via
          option,  the  host  machine name should be specified as known to the gateway
          machine, e.g.  "localhost"  denotes  the  gateway,  not  the  machine  where
          vncviewer  was  launched.  The environment variable VNC_VIA_CMD can override
          the            default             tunnel             command             of
          /usr/bin/ssh -f -L "$L":"$H":"$R" "$G" sleep 20.  The tunnel command is exe‐
          cuted with the environment variables L, H, R, and G taken the values of  the
          local  port number, the remote host, the port number on the remote host, and
          the gateway machine respectively.

答案1

这就是手册页想要表达的内容。我有以下设置。

  vncviewer         .-,(  ),-.    
   __  _         .-(          )-.           gateway           vncserver 
  [__]|=|  ---->(    internet    )-------> __________ ------> ____   __ 
  /::/|_|        '-(          ).-'        [_...__...°]       |    | |==|
                     '-.( ).-'                               |____| |  |
                                                             /::::/ |__|

笔记:上图是使用完成的ASCII

vncviewer正在从我的笔记本电脑上运行。我可以从我的笔记本电脑运行以下命令并连接到vncserver路由器后面的命令:

$ vncviewer vncserver_host:0 -via mygateway.mydom.com

这将立即将我连接到vncserver.此命令显示在我的笔记本电脑上,有助于显示手册页试图解释的内容:

/usr/bin/ssh -f -L 5599:vncserver_host:5900 mygateway.mydom.com sleep 20

vncviewer这是使用开关时自动构建的命令-via gateway

包括ssh配置

您可以使用该~/.ssh/config文件并将条目放入该文件中,如下所示:

Host *
IdentityFile ~/.ssh/id_dsa

或者您可以像这样定位特定主机:

Host mygateway
    User sam
    HostName mygateway.mydom.com
    IdentityFile ~/.ssh/someother_id_rsa

Host这将允许您像这样利用此文件中的条目:

$ vncviewer vncserver_host:0 -via mygateway

相关内容