![](/img/trans.png)
[英]How to automate ctrl+d action in the ssh expect script in bash?
[英]How to automate a vnc+ssh solution
我想在我的工作机器上运行一个应用程序(称为firefox)。 问题是我需要做一些复杂的ssh调整来访问它,因为从外部阻止了对机器的访问,并且内部也阻塞了一些端口。 所以我做了以下几点。
ssh -v -L 1200:serverC:22 user@serverB (locally)
ssh -v -L 5900:127.0.0.1:5900 -p 1200 user_from_serverC@127.0.0.1 (locally)
x11vnc -safer -localhost -nopw -once -display :0 (on serverC)
vinagre localhost::5900 (locally)
然后我在打开的vnc窗口中运行firefox(说),一切正常。
但是我想有一个bash脚本为我做这个。 我该如何实现自动化?
有两个问题。
理想情况下,我只需在本地键入“./remote-firefox”(例如)即可实现所有这些功能。
尝试:
x11vnc -safer -localhost -nopw -once -display :0 #Run manually on system_C
在本地系统上,
ssh -t -L 5902:localhost:5901 user_B@server_B 'ssh -t -L 5901:localhost:5900 user_C@server_C' &
#Note: Enable password-less (key based) authentication from "your_pc -> servB" & "servB -> servC"
vncviewer localhost:2 #Run on local system
注意:如果命令失败,请尝试更改端口号。 在这个例子中,我试图隧道它如下:
your_PC:5902 <-> server_B:5901 <-> server_C:5900
我没有测试过这个2级链(我不知道x11vnc的-display
参数是否适用于ssh,但我想,它应该。):
#Run both lines on local system
ssh -t -L 5902:localhost:5901 user_B@server_B "ssh -t -L 5901:localhost:5900 user_C@server_C 'x11vnc -safer -localhost -nopw -once -display :0'" &
vncviewer localhost:2
编辑:为了适应这个:
对,就是那样。 但令人讨厌的是servB - > servC阻塞了端口5900。 - Anush
#Run both lines on local system. This may be overhead, but should work.
ssh -t -L 5902:localhost:5901 user_B@server_B "ssh -t -L 5901:localhost:1200 user_C@server_C 'ssh localhost -L 1200:localhost:5900 & x11vnc -safer -localhost -nopw -once -display :0'" &
vncviewer localhost:2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.