これらの2つのコマンドを1つに減らすにはどうすればよいですか?クライアントからx11vncサーバーに接続していますが、以下の2つのコマンドはすでに機能しています。私はそれを1つのステップでやりたいだけです:
最初のコマンド:
ssh -fNL 5901:localhost:5678 -i ~/.ssh/some_id_rsa [email protected]
そして2番目:
vncviewer localhost:5901
Manページを読むと、-viaオプションでそれができるようです。残念ながら、manページは私を非常に混乱させます。参考までに(私が理解しているわけではありませんが)、これが私のマニュアルページの内容です。
-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.
これは、manページが言おうとしていることです。私は次の設定をしています。
vncviewer .-,( ),-.
__ _ .-( )-. gateway vncserver
[__]|=| ---->( internet )-------> __________ ------> ____ __
/::/|_| '-( ).-' [_...__...°] | | |==|
'-.( ).-' |____| | |
/::::/ |__|
注:上記の図は asciio を使用して作成されました。
vncviewer
は私のラップトップから実行されています。私のラップトップから、次のコマンドを実行して、ルーターの背後にあるvncserver
に接続できます。
$ vncviewer vncserver_Host:0 -via mygateway.mydom.com
これにより、すぐにvncserver
に接続されます。このコマンドは私のラップトップに表示され、manページが説明しようとしていることを示すのに役立ちます。
/usr/bin/ssh -f -L 5599:vncserver_Host:5900 mygateway.mydom.com sleep 20
これは、-via gateway
スイッチを使用したときにvncviewer
が自動的に作成するコマンドです。
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