因爲傳統的 VNC 或者 XDMCP/X11 服務安全性不足,這些服務只適合用於局域網,不能在廣域網使用。
本文示例了配置 SSH Tunnel 隧道訪問 AIX 圖形界面的方法,經過 SSH 隧道 RSA/DSA 加密,可顯著提升訪問密碼的安全性。文中共列舉了三種配置方法,您能夠根據自身須要選取其中一種。
使用 Putty 設置 SSH 隧道 (Putty + VNC)
能夠在 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 爲窗口 id):
#/opt/freeware/bin/vncserver -kill :1
- 普通用戶也能夠啓動本身的 vncserver,且同一個用戶能夠啓動多個 vncserver。但相應的 X 窗口 id 必須不一樣:例如 root 用戶啓動 id=1 的窗口 ( 如上示例 ),test 用戶啓動 id=2 的窗口,guest 用戶啓動 id=3 的窗口,
依此類推
。 - vncserver 監聽的 VNC 鏈接端口爲 5900+ 窗口 id。
說明:
一些早期版本的 Putty 可能不具有 Tunnel 功能或 X11 轉發功能,如 Release 0.57 就不支持 X11 轉發功能。因此建議儘可能使用最新版本,本文中使用的 Putty 版本爲 Release 0.62。
配置一個 session,修改以下 Putty 屬性:
Connection-> SSH -> Tunnels
圖 1. 經過 Putty 設置 SSH 隧道功能
![圖 1. 經過 Putty 設置 SSH 隧道功能](http://static.javashuo.com/static/loading.gif)
各項目含義解釋:
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 了。
回到 session 欄目,配置 SSH Server,並保存該 session:
圖 2. 保存 Putty 會話
![圖 2. 保存 Putty 會話](http://static.javashuo.com/static/loading.gif)
登陸配置好的 session,輸入用戶名 / 密碼;並在 VNC 鏈接期間保持打開。
說明:若是隧道關閉了,VNC 鏈接固然就沒法轉發了。
VNC 客戶端下載地址:
http://www.realvnc.com/products/free/4.1/winvncviewer.html
VNC 客戶端打開本地端口 5901 便可登陸圖形界面。整個過程經過 SSH 加密傳輸,GUI 界面不引入額外的安全風險。
圖 3. VNC 客戶端登陸
![圖 3. VNC 客戶端登陸](http://static.javashuo.com/static/loading.gif)
- 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 事件日誌
- 重設密碼
cd 到用戶的 $HOME/.vnc 目錄,刪除 passwd 文件便可。
- 更改 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 相關的程序包,相關內容參考後續章節。
- 受權其餘用戶訪問本用戶 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)
確認系統是否已安裝 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 轉發功能](http://static.javashuo.com/static/loading.gif)
保存 SSH 會話:
圖 6. 保存 Putty 會話
![圖 6. 保存 Putty 會話](http://static.javashuo.com/static/loading.gif)
Xmanager 能夠經過以下網站獲取:
http://www.netsarang.com/products/xme_overview.html
以以下方式在 Windows 客戶端啓動 Xmanager:
開始 -> 全部程序 -> Xmanager Enterprise 3 -> Xmanager – Passive
登陸已設置好 X11Forwarding 的 Putty session,便可在此會話上使用圖形終端。
圖 7. Putty+Xmanager 方式配置成功後的效果圖
![圖 7. Putty+Xmanager 方式配置成功後的效果圖](http://static.javashuo.com/static/loading.gif)
使用 SSH X11 Forwarding 設置 CDE (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 小時。
開始 -> 全部程序 -> Cygwin-X -> Xwin Server
打開 Xwin;
執行 ssh –Y <user_name>@<SSH Server Addr> 登陸相應 SSH Server 便可。
參考:
圖 8. Cygwin/X 方式配置成功後的效果圖
![圖 8. Cygwin/X 方式配置成功後的效果圖](http://static.javashuo.com/static/loading.gif)
第一種方式(使用 Putty + VNC)安裝配置起來最簡單快捷。但若是須要鏈接多個圖形窗口,則須要手工啓動多個 vncserver 進程;並且圖形界面風格比較簡約。
第2、三種方式相關軟件安裝相對複雜一些,但鏈接多個圖形窗口不須要額外的設置。其中第二種方式須要藉助商業軟件 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 用戶交流。
平均分 (1個評分)
快來添加第一條評論 |
請 登陸 或 註冊 後發表評論。
注意:評論中不支持 HTML 語法