首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使vnc+ssh解决方案自动化

如何使vnc+ssh解决方案自动化
EN

Stack Overflow用户
提问于 2013-04-18 08:13:28
回答 1查看 1.1K关注 0票数 0

我想在我的工作机器上运行一个应用程序(称为firefox)。问题是,我需要做一些复杂的ssh调优来获得对它的访问,因为对机器的访问从外部被阻塞,一些端口也在内部被阻塞。所以我做以下几件事。

代码语言:javascript
复制
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脚本,为我这样做。我怎么能把它自动化呢?

有两个问题。

  1. 我需要在上面的每个ssh之后登录,以便调优工作,所以一个简单的bash脚本在第一步之后就停止了。
  2. 我不知道如何使应用程序在vnc窗口中自动运行。

理想情况下,我只需在本地输入“./remote firefox”(例如),以实现这一切。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 09:18:01

尝试:

代码语言:javascript
复制
x11vnc -safer -localhost -nopw -once -display :0 #Run manually on system_C

&关于地方体制,

代码语言:javascript
复制
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

注意:如果命令失败,请尝试更改端口号。在本例中,我试图将其隧道设置如下:

代码语言:javascript
复制
your_PC:5902 <-> server_B:5901 <-> server_C:5900

我还没有测试这个2级链(我不知道x11vnc的-display参数是否适用于ssh,但我认为应该这样做):

代码语言:javascript
复制
#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被阻塞。-安努什

代码语言:javascript
复制
#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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16077752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档