有童鞋在 AskWowUbuntu 上提出了这样一个问题,要求能远程控制主机运行上面的程序,而且不影响远程主机用户的使用,两者互不影响。个人认为如果只是想运行其中某一软件的话,通过 SSH 的 X11forwarding 功能来执行是最简单方便的,所以把方法写在了这里。
1 在远程 Ubuntu 主机上安装 OpenSSH Server
sudo apt-get install openssh-server
确认 /etc/ssh/sshd_config 文件中的 X11Forwarding 为打开 (Ubuntu 上安装后默认是打开的,所以一般不用做调整。)
X11Forwarding yes
如果远程主机没有装 X 的话,只需要安装 xauth 组件就可以了。
sudo apt-get install xauth
2 好了,现在就可以在本地主机上执行以下命令可以运行远程主机上的 X 程序了,记得更改里面的 username , hostip 及 app-name 为你的参数。
ssh -XC username@hostip app-name
X 表示启用 X11 转发,C 表示启用 gzip 压缩。或者也可以用 -Y 参数 (ssh -YC username@hostip app-name ) ,- Y 表示用 Trusted X11 forwardings (信任连接)方式 [参考]。
- 样例:比如我要运行远程主机上的 VirtualBox
ssh -XC riku@192.168.1.2 VirtualBox
当然,运行的时候,调用的文件都是远程主机上的。
[ FAQ ]
1 能不能不要每次都输入密码?
利用 Key 认证方式。输入命令 ssh-keygen 后一直回车产生 SSH key (公钥/密钥),然后 ssh-copy-id username@hostip 来上传公钥,下次就不用输入密码可直接登录了。
2能不能不用每次都输入命令?
可以在桌面上创建一个快捷方式,其中类型必须选择为终端应用程序,命令部分就为 ssh -XC riku@192.168.1.2 VirtualBox 这样的。以后就可以直接点击桌面图标来运行远程主机上的程序了。