linux x11 链接,Linux_用SSH实现X11转发,有多种不同的方法实现连接到 - phpStudy

用SSH实现X11转发

有多种不同的方法实现连接到远程服务器或工作站,你可以使用NoMachine的NX服务器或GPL解决方案FreeNX,其他工具类似RealVNC或VNC提供远程控制软件允许你查看和通过网络与桌面应用程序进行交互。

一种加强通讯安全的方法就是使用SSH通过X11隧道或端口转发技术实现,开发SSH是为了替换不安全的telnet,ftp,rlogin,rsh软件,FreeNX已经可以完美地运用这个技术,在本文中我将展示如何使用SSH实现X11转发,而不用任何附加的软件,另外,我将解释如何在windows xp客户端上用PuTTY和X-Deep/32运行Linux应用程序。

为了对你有所启发,我将用一小段解释都需要些什么,我将远程访问两台机器:

运行KDE的OpenSUSE 10.2和运行Gnome的Debian 4.0

客户端机器我使用包括ssh客户端的OpenSUSE和使用Putty的windows xp,从ssh的角度来看,远程机器就是服务器,本地机器就是客户端,实验环境准备如下图

第一步:准备ssh服务器

首先,你必须在你的服务器上安装ssh软件包,我将使用操作系统发行版提供了OpenSSH软件包,请核对在两个发行版中如何寻找和安装rpm包,在某些情况下它已经安装在服务器上了(有可能将其作为标准软件包在安装系统时就安装了)。

如果你是从源代码建立的软件,确认编译时选择了X转发支持,ssh 3.2或更高版本的二进制软件包包括运行时X检测。

同时,确认在你的/etc/ssh2/sshd2_config文件中有下面这一行:

AllowX11Forwarding              yes

准备好之后,使用下面的命令启动sshd服务:

/etc/init.d/sshd start

service sshd start

第二步:使用一个Linux客户端

你或许已经注意到Linux通过Ctrl-Alt-F1(-F12)组合键在虚拟控制台之间切换。通常,没有理由离开默认的控制台(虚拟控制台#7),除非你试图再次登陆或问题诊断。

请象下面这样为测试目的进行控制台切换:

Ctrl-Alt-F2  - 切换到一个新的shell提示符

Ctrl-Alt-F12  - 切换到一个空的控制台

Ctrl-Alt-F7   - 切回到X图形显示

当你同时敲击了Ctrl-Alt-F12时,你会看到在这个控制台没有任何实质内容,让我们在这里显示远程机器的GUI图形界面,我们使用组合键可以很容易地从你的客户端切换到远程机器。

登陆到你的客户端机器,作为一个常规用户运(不需要root权限)行KDE并打开一个控制台,我们将在控制台12上使用下面的命令打开一个X会话:

X :12.0 vt12 2>&1 >/dev/null &

这将发生所有不需要的输出或全部黑屏但是将在控制台12上打开另外一个X窗口,如果你现在用Ctrl-Alt-F12进行切换,你将看到下面这样的显示(空的灰暗的背景):

使用Ctrl-Alt-F7切回到原始的图形显示,回到之前你已经打开的控制台,使用下面的命令创建一个到远程服务的ssh连接:

xterm –display :12.0 –e ssh –X [email protected]&

“User”应该是远程系统上的一个有效用户,你可以(无疑地)用服务器的有效域名替换ip地址。

如果你现在切回到控制台12(Ctrl-Alt-F12),在输入正确的密码后你会得到一个提示符:

在远程机器OpenSUSE上用下面的命令启动KDE:

kde

如果你想访问Debian机器,你可以用下面的命令:

xterm –display :12.0 –e ssh –X [email protected]&

使用下面的命令在远程Debian机器上启动Gnome:

gnome-session &

请注意两个例子中都有一个x-term窗口显示登陆信息,你可以最小化它,但是不应该关闭它。

如果你想取消连接,只需要关闭xterm窗口或使用Ctrl-Alt-Backspace组合键。

如我前面提到的一样,现在你可以在两台机器上工作,通过Ctrl-Alt-F7和Ctrl-Alt-F12组合键来切换。

第三步:使用一个windows客户端

不幸的是我们在windows上使用了附加的软件,我们使用putty从windows xp客户端到远程服务器进行连接,putty是一款免费的win32和unix平台下可用的telnet、ssh实现,附带一个xterm终端模拟器,它主要由simon tatham编写和维护。

如果你想用X11转发特色,你需要给你的windows机器准备一个X显示服务器,如Cygwin/X,X-win32,Exceed或X-Deep/32,可能在你本地机器上显示号0上安装,如果它没有这样安装,请查看X服务器的man手册,它会告诉你该怎么做。

我们将在这个实验环境中使用X-Deep/32作为X显示服务器,请首先下载并安装它,在http://www.caslab.queensu.ca/LabHelp/XServer/你可以找到一个下载链接以及详细的介绍和附加的帮助。

打开putty,首先,设置连接信息,在主机名(或ip地址)区域输入远程服务器的主机名或ip地址,连接类型选择“SSH”,端口输入“22”,在“连接”树节点中,找到SSH,展开它你将看到隧道窗口,点击“启动X11转发”,默认设置X显示在“localhost:0”,现在,回到“会话”保存该连接配置信息,取一个你喜欢的名字,我们习惯用ip地址来命名。

因为X服务器运行在后台,现在你应该可以运行X11应用程序,在下一张图中你可以看到Linux应用程序如xclock和konqueror运行在windows xp桌面上。

本文作者:相关阅读:

jsp 文件上传浏览,支持ie6,ie7,ie8

用javascript实现页面无刷新更新数据

Linux下如何查找一个函数在哪个库中

从C/C++迁移到PHP——判断字符类型的函数

SQL语句优化方法30例(推荐)

SUSE 10.2 Linux下配置Eclipse开发环境

PHP extract 将数组拆分成多个变量的函数

mysql 提示INNODB错误的解决方法

整理的40个有用的jQuery技术和教程

用vbs实现定时运行web文件的方法

HTML表格标记教程(16):标题水平对齐属性ALIGN

用JS实现网页元素阴影效果的研究总结

CMD下的网络安全配置方法

ajax 的post方法实例(带循环)

你可能感兴趣的:(linux,x11,链接)