通过 SSH 隧道方式图形化连接 AIX 服务器

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

通过 SSH 隧道方式图形化连接 AIX 服务器

陈 炽卉, 工程师, IBM

简介: 本文介绍了如何通过 SSH 隧道方式连接 AIX 图形界面,适用于有防火墙保护或保密性要求的图形化访问 AIX 的场景;该方案可以作为 AIX 在广域网上提供 GUI 接口的标准方式。

发布日期: 2012 年 7 月 23 日
级别: 中级
访问情况 : 1354 次浏览
评论: 0 (查看 | 添加评论 - 登录)

平均分 5 星 共 1 个评分 平均分 (1个评分)
为本文评分

内容介绍

由于传统的 VNC 或者 XDMCP/X11 服务安全性不足,这些服务只适合用于局域网,不能在广域网使用。

本文示例了配置 SSH Tunnel 隧道访问 AIX 图形界面的方法,通过 SSH 隧道 RSA/DSA 加密,可显著提高访问密码的安全性。文中共列举了三种配置方法,您可以根据自身需要选取其中一种。


使用 Putty 设置 SSH 隧道 (Putty + VNC)

1. 在 AIX 上安装以及配置 VNC Server

可以在 AIX Toolbox for Linux 里面下载 VNC 安装包:

http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/download.html

运行如下命令安装:

 #rpm -ivh vnc-3.3.3r2-6.aix5.1.ppc.rpm 

运行如下命令启动 vncserver,1 为显示窗口 ID,首次配置需要设置访问密码:

 #/opt/freeware/bin/vncserver :1 

说明:

  1. 相应的停止方法为 (1 为窗口 id):
     #/opt/freeware/bin/vncserver -kill :1 

  2. 普通用户也可以启动自己的 vncserver,且同一个用户可以启动多个 vncserver。但相应的 X 窗口 id 必须不同:例如 root 用户启动 id=1 的窗口 ( 如上示例 ),test 用户启动 id=2 的窗口,guest 用户启动 id=3 的窗口,依此类推
  3. vncserver 监听的 VNC 连接端口为 5900+ 窗口 id。

2. 下载 Putty 客户端

http://www.putty.org/

说明:

一些早期版本的 Putty 可能不具备 Tunnel 功能或 X11 转发功能,如 Release 0.57 就不支持 X11 转发功能。所以建议尽量使用最新版本,本文中使用的 Putty 版本为 Release 0.62。

3. 设置 SSH 隧道

配置一个 session,修改如下 Putty 属性:

Connection-> SSH -> Tunnels


图 1. 通过 Putty 设置 SSH 隧道功能
图 1. 通过 Putty 设置 SSH 隧道功能

各项目含义解释:

Source Port: 定义本机(PC 客户端)接受 VNC Client 连接的端口。

说明:这个端口是本机的端口,可以是任何与本机其他服务不冲突的端口,例如 4000、5000 等等。尤其是如果一个客户端机器同时访问多个VNC Server的情况,必须分配不同的本地端口,以避免端口冲突。

Destination:

从 SSH Server 的角度而言,指的是 VNC Server 的服务地址及端口;此处而言,VNC Server 就是 SSH Server 本身,所以此处直接设为 localhost. 例如 VNC Server 的监听端口是 5901,此处即为 localhost:5901;显示窗口为 2 的话,监听端口为 5902,相应的 Destination 设置应为 localhost:5902。

说明:更复杂的 tunnel 可能有多跳(hop) 的情况,这种情况就不是 localhost 了。

4. 配置 SSH Server 并保存会话

回到 session 栏目,配置 SSH Server,并保存该 session:


图 2. 保存 Putty 会话
图 2. 保存 Putty 会话

5. 激活 SSH Tunnel

登录配置好的 session,输入用户名 / 密码;并在 VNC 连接期间保持打开。

说明:如果隧道关闭了,VNC 连接当然就无法转发了。

6. 本地客户端登录

VNC 客户端下载地址:

http://www.realvnc.com/products/free/4.1/winvncviewer.html

VNC 客户端打开本地端口 5901 即可登录图形界面。整个过程通过 SSH 加密传输,GUI 界面不引入额外的安全风险。


图 3. VNC 客户端登录
图 3. VNC 客户端登录

7. 常见问题解决方法

  1. VNC 客户端连接失败

    检查 Putty 的 Event Log, 正常的情况下,应该有如下提示;否则需检查 SSH Tunnel 设置:

    2012-04-11 09:56:57 Local port 1001 forwarding to localhost:5901

    VNC Client 登录成功后,会有如下提示:

    2012-04-11 09:57:18 Opening forwarded connection to localhost:5901

    参考:



    图 4. 查看 Putty 事件日志
    图 4. 查看 Putty 事件日志

  2. 重设密码

    cd 到用户的 $HOME/.vnc 目录,删除 passwd 文件即可。

  3. 更改 Xterm 为 CDE 窗口的方法

    VNC 默认终端使用 xterm 方式,与 CDE 相比,xterm 风格比较简单。如下需要使用 CDE 式窗口,可以按如下方式设置 : 修改相应用户 HOME 目录下的 .vnc/xstartup 文件 , 把 xterm 改成 dtsession 即可 ; 参考如下粗体字部分的修改:

     [/.vnc]#cat xstartup  #!/bin/sh  xrdb $HOME/.Xresources  xsetroot -solid grey  #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & sh -c "LANG=C; DISPLAY=$DISPLAY; export LANG DISPLAY; /usr/dt/bin/dtsession" twm & 

    说明:

    使用 CDE 窗口需要安装 X11.Dt 相关的程序包,相关内容参考后续章节。

  4. 授权其他用户访问本用户 GUI 界面的设置方法

    多个用户或者同一个用户,都可以在不同的端口上启动多个 vnc server,以获得各自独立的 GUI 窗口。例如 root 用户使用 vncserver :1, test 用户可使用 vncserver :2 等等。

    如果切换到其他用户,仍希望使用本用户的窗口,则需要授权;授权方法如下:

    查看 DISPLAY 取值:

     [/]#echo $DISPLAY node2:1.0 

    根据 DISPLAY 取值,确认鉴权项:

     [/]#xauth list node2:1  MIT-MAGIC-COOKIE-1  4c0b5b67969132bfff1f8a225574d666  node2/unix:1  MIT-MAGIC-COOKIE-1  4c0b5b67969132bfff1f8a225574d666  node2:2  MIT-MAGIC-COOKIE-1  4c0b5b67969132bfff1f8a225574d666  node2/unix:2  MIT-MAGIC-COOKIE-1  4c0b5b67969132bfff1f8a225574d666 

    切换到需要 GUI 的其他用户,添加鉴权项目,并设置 DISPLAY 即可:

     [/]#su - test  test@node2<~>xauth add node2:1 .4c0b5b67969132bfff1f8a225574d666 1356-364 xauth:  creating new authority file /home/test/.Xauthority  test@node2<~>xauth add node2/unix:1 .4c0b5b67969132bfff1f8a225574d666 test@node2<~>export DISPLAY=localhost:1.0  test@node2<~>xclock 


使用 SSH X11 Forwarding 设置 CDE (Putty + Xmanager)

1. 在 AIX 上安装 X11.Dt 相关的程序包

确认系统是否已安装 X11.Dt 相关的程序包 :

X11.apps.all

X11.base.all

X11.compat.all

X11.fnt ( 字体文件集,选取部分即可 )

X11.motif.all

X11.Dt.all:

X11.Dt.bitmaps ---CDE 位图

X11.Dt.helpmin --- 最小帮助文件

X11.Dt.helprun --- 运行时帮助

X11.Dt.lib ---AIX CDE 运行时连接库

X11.Dt.ToolTalk --TootTalk 支持

X11.Dt.bitmaps --CDE 位图

X11.Dt.helpmin --- 最小帮助文件

X11.Dt.rte ---AIX 通用桌面环境

如果没有上述软件包,可使用安装光盘的第二张来安装这些软件包;

修改配置,防止 ASCII 控制台启动 CDE,安装完后,设置如下:

 #cp /usr/dt/config/Xservers /etc/dt/config/Xservers 

然后,注释 /etc/dt/config/Xservers 最后启动 Xserver 的一行,以防止在 ASCII 控制台启动 CDE。

启动 CDE

以 root 用户身份启动 CDE:

a. 在 AIX 启动时自动启动 CDE。使用 root 用户登录,并在命令行中执行:

 #/usr/dt/bin/dtconfig -e 

b. 在命令行中启动 CDE:

 #/etc/rc.dt;exit 

c. 确认 CDE 已经启动:

 #ps -ef |grep dtlogin  #netstat -an|grep 177  udp4       0      0  *.177                  *.* 

如果您看到 dtlogin 进程在运行,且 UDP 端口 177 已打开,则说明 CDE 已经正常启动。

2. 在 SSH Server 端(AIX)配置 X11 Fowarding

a、编辑 /etc/ssh/sshd_config,打开 X11 Forwarding:

 # vi /etc/ssh/sshd_config 修改如下几行: X11Forwarding yes  X11DisplayOffset 10  X11UseLocalhost yes 

b、重启 sshd

 # stopsrc -s sshd  0513-044 The sshd Subsystem was requested to stop.  # startsrc -s sshd  0513-059 The sshd Subsystem has been started. Subsystem PID is 3997734. 

注意:

sshd 不接受 refresh –s 方式刷新配置,只能重启;

SSH Server 端默认的 TCP 监听端口从 6000+ 10(10 即 X11DisplayOffset取值)开始;新的客户端连接依次是 6010, 6011, ...

3. 在 SSH Client 端(PC 端)配置 X11 Fowarding

配置一个 session,修改如下 Putty 属性 :

Connection-> SSH -> Tunnels


图 5. 通过 Putty 设置 X11 转发功能
图 5. 通过 Putty 设置 X11 转发功能

保存 SSH 会话:


图 6. 保存 Putty 会话
图 6. 保存 Putty 会话

4. 以 passive 方式启动 Xmanager

Xmanager 可以通过如下网站获取:

http://www.netsarang.com/products/xme_overview.html

以如下方式在 Windows 客户端启动 Xmanager:

开始 -> 所有程序 -> Xmanager Enterprise 3 -> Xmanager – Passive

5. 登录 SSH 会话激活 X11 Forwarding

登录已设置好 X11Forwarding 的 Putty session,即可在此会话上使用图形终端。


图 7. Putty+Xmanager 方式配置成功后的效果图
图 7. Putty+Xmanager 方式配置成功后的效果图

使用 SSH X11 Forwarding 设置 CDE (Cygwin/X)

1. SSH Server 端配置

同上一部分一样,不在冗述了。

2. Cygwin/X 安装

Cygwin/X 安装步骤以及下载方法参考:

http://x.cygwin.com/docs/ug/setup.html#setup-cygwin-x-installing

Cygwin/X 相关的包在 X11 分类下,注意需要显式选择如下安装包:

xorg-server ( 必须,Cygwin/X X 服务器 )

xinit ( 必须,相关的启动脚本,如 xinit, startx, startwin)

xorg-docs ( 可选,帮助文件 )

X-start-menu-icons ( 可选,添加项目到“开始”菜单 )

安装过程视网速而定,一般需要 1-2 小时。

3. 启动 Xwin 并登录

开始 -> 所有程序 -> Cygwin-X -> Xwin Server

打开 Xwin;

执行 ssh –Y <user_name>@<SSH Server Addr> 登录相应 SSH Server 即可。

参考:


图 8. Cygwin/X 方式配置成功后的效果图
图 8. Cygwin/X 方式配置成功后的效果图

三种连接方式比较

第一种方式(使用 Putty + VNC)安装配置起来最简单快捷。但如果需要连接多个图形窗口,则需要手工启动多个 vncserver 进程;而且图形界面风格比较简约。

第二、三种方式相关软件安装相对复杂一些,但连接多个图形窗口不需要额外的设置。其中第二种方式需要借助商业软件 Xmanager;第三种方式需使用开源的 Cygwin/X。

您可以根据自身的情况选择最合适的方式。


总结

本文介绍了如何通过 SSH 隧道方式 GUI 连接 AIX 图形界面,该方案可以作为 AIX 服务器在广域网上提供 GUI 接口的标准方式。


参考资料

学习

  • Installing Xwindows from an ASCII Terminal :介绍了在 AIX 如何安装 Xwindows 相关的文件集。

  • http://the.earth.li/~sgtatham/Putty/0.52/htmldoc/Chapter3.html#3.1.3.1">Using PuTTY :介绍了 Putty 的使用方法,包括 SSH 隧道的配置方法以及常见问题的定位方法。

  • XonAIX wiki:列举了在 AIX 上安装 Xwindows 的各种相关问题以及相应解决方法。

  • Setting Up Cygwin/X:介绍了 Cygwin/X 的详细安装步骤。

  • Cygwin-X Frequently Asked Questions :提供了 Cygwin/X 常见使用问题的解答。

  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。

  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。

  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。

  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。

  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。

讨论

  • 加入 developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。

关于作者

作者毕业于中国科学技术大学,目前任职于 IBM,主要方向为 AIX 平台移植、性能优化、问题定位等。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

平均分 5 星 共 1 个评分 平均分 (1个评分)

1 星1 星
2 星2 星
3 星3 星
4 星4 星
5 星5 星

评论

登录注册 后发表评论。

注意:评论中不支持 HTML 语法


剩余 1000 字符



快来添加第一条评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=826891
ArticleTitle=通过 SSH 隧道方式图形化连接 AIX 服务器
publish-date=07232012
url=http://www.ibm.com/developerworks/cn/aix/library/1207_chenzh_sshguiaix/index.html?ca=drs-

标签

Help
使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。





posted @ 2014-02-17 17:03 Swizard 阅读(...) 评论(...) 编辑 收藏