Ssh
通過 SSH 一步建立客戶端 VNC 連接(例如,使用 -via 選項)
如何將這兩個命令減少為一個?我正在從我的客戶端連接到 x11vnc 伺服器,並且下面的兩個命令已經工作。我只希望一步完成:
第一個命令:
ssh -fNL 5901:localhost:5678 -i ~/.ssh/some_id_rsa rocky@example.com
第二:
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.
這就是手冊頁想要表達的意思。我有以下設置。
vncviewer .-,( ),-. __ _ .-( )-. gateway vncserver [__]|=| ---->( internet )-------> __________ ------> ____ __ /::/|_| '-( ).-' [_...__...°] | | |==| '-.( ).-' |____| | | /::::/ |__|
**注意:**上圖是使用asciio完成的。
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