SSH + X11 forwarding + X-Deep/32

通常我在管理Linux 时都会使用到SSH 直接透过桌机去连接,如果真的非得用到x-window 时我会使用VNC(Virtual Network Computing) 来当作远端的连线,但老实说VNC(Virtual Network Computing)并不是很安全.

前幾天看到一個同事採用的是SSH + X11 forwarding 再加上x-win32 ,就可以在windows 的桌機使用Linux 的X-window 而且是透過SSH 的方式連接安全上也不會有太大的問題.但是我上了x-win32 http://www.starnet.com/ 他並不是免費的.恩!!!雖然可以試用但是有每次連線30 分鐘的限制.所以我又再找了另外一套 X-Deep/32 http://www.caslab.queensu.ca/LabHelp/XServer/前几天看到一个同事采用的是SSH + X11 forwarding 再加上x-win32 ,就可以在windows 的桌机使用Linux 的X-window 而且是透过SSH 的方式连接安全上也不会有太大的问题.但是我上了x-win32 http://www.starnet.com/ 他并不是免费的.恩!!!虽然可以试用但是有每次连线30 分钟的限制.所以我又再找了另外一套X-Deep/32 http://www.caslab.queensu.ca/LabHelp/XServer/


Linux: Linux:

不過如果你的桌機是Linux 可以很簡單的實現SSH + X11 forwarding 並不需要其他的程式,方式如下:不过如果你的桌机是Linux 可以很简单的实现SSH + X11 forwarding 并不需要其他的程式,方式如下:

[root@local ~] # ssh -X remote

-X(大寫,Enables X11 forwarding),接下來我們會進入遠端,並將遠端執行的程式在目前螢幕顯示出來。 -X(大写,Enables X11 forwarding),接下来我们会进入远端,并将远端执行的程式在目前萤幕显示出来。

注:当我们在windows上安装好x-deep/32后,通过putty连结好后,运行ssh -X linux主机IP

[root@remote ~] # xterm & 

你可以看到遠端所執行的程式,在local 端顯示出來。你可以看到远端所执行的程式,在local 端显示出来。

注:此处显示的是终端,如果想显示时钟设置程序,就要输入system-config-data & ,不过因为传输的问题,可能会出现最后提到的那一大串错误。

轉送X session 預設登入SSH 時,就可以將X-Window 執行的畫面傳回本地端.如果不行檢查一下你的Remote 端/etc/ssh/sshd_config 中X11Forwarding 是否設為yes (OpenSSH 2.X版預設值為no)转送X session 预设登入SSH 时,就可以将X-Window 执行的画面传回本地端.如果不行检查一下你的Remote 端/etc/ssh/sshd_config 中X11Forwarding 是否设为yes (OpenSSH 2.X版预设值为no)

Windows: Windows:
但是通常我的遠端桌面是Windows 所以有其他的解決方案嗎??有的SSH + X11 forwarding + X-Deep/32 先下載所需的工具,1.x-Deep/32 , 2.SSH 這兩隻工具安裝上並沒有什麼難度只要不斷的按下一步即可.但是通常我的远端桌面是Windows所以有其他的解决方案吗??有的SSH + X11 forwarding + X-Deep/32先下载所需的工具,1.x-Deep/32 , 2.SSH 这两只工具安装上并没有什么难度只要不断的按下一步即可.
1.x-Deep/32 1.x-Deep/32
x-Deep/32 的下載點http://www.caslab.queensu.ca/LabHelp/XServer/ x-Deep/32的下载点http://www.caslab.queensu.ca/LabHelp/XServer/

安裝完成x-Deep/32 還需要經過設定才可以使用,一開始你會看到x-Deep/32 要求我們選擇你的哪些網路裝置可以使用這個服務.你會看到的裝置可能會跟我差很多,但是通常我們在一開始可以先選擇讓所有的網路裝置都可以使用 “IP:[ ANY ] accept requests on any local interface”安装完成x-Deep/32 还需要经过设定才可以使用,一开始你会看到x-Deep/32 要求我们选择你的哪些网路装置可以使用这个服务.你会看到的装置可能会跟我差很多,但是通常我们在一开始可以先选择让所有的网路装置都可以使用”IP:[ ANY ] accept requests on any local interface”
 
一開始你可能會找不到設定X-Deep 32 的設定程式,它一開始就會縮小到taskbar 的選項裡面,如果沒看到可以點選”顯示隱藏的圖示”就會找到可以設定x-Deep32 的位置.一开始你可能会找不到设定X-Deep 32 的设定程式,它一开始就会缩小到taskbar 的选项里面,如果没看到可以点选”显示隐藏的图示”就会找到可以设定x -Deep32 的位置.
 
展開x-Deep32 後選擇Edit -> X-Server Options展开x-Deep32 后选择Edit -> X-Server Options
 
Window Modes: Window Modes:
選擇”Window Modes” tab,將”Multiple Window Mode” 的模式選成”Multiple MS Window Mode” 並且不要勾選”Display Root Window” 這一選項.选择”Window Modes” tab,将”Multiple Window Mode” 的模式选成”Multiple MS Window Mode” 并且不要勾选”Display Root Window” 这一选项.
 
XDMP: XDMP:
切換到”XDMCP” 將”X-Deep/32 Local XDM Chooser” 的勾選選項移除掉.切换到”XDMCP” 将”X-Deep/32 Local XDM Chooser” 的勾选选项移除掉.
 
這樣我們就可以將Linux 的X-Window Client 所顯示的畫面顯示到x-Deep32 的X-window Server 上面.按下 “OK.” X-Deep/32 將會重新啟動server. 接下來到SSH 去連接Linux.这样我们就可以将Linux 的X-Window Client 所显示的画面显示到x-Deep32 的X-window Server 上面.按下”OK.” X-Deep/32 将会重新启动server. 接下来到SSH 去连接Linux.

2.SSH 2.SSH

這一隻SSH 連接程式是我比較常用的PuTTY (the Telnet and SSH client itself) 下載點: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html这一只SSH 连接程式是我比较常用的PuTTY (the Telnet and SSH client itself) 下载点: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
在putty 選項Under Connection -> SSH -> Tunnels 可以看到這邊的主角X11 forwarding. 請動”Enable X11 forwarding” 這一選項並將”X display location” 設並為localhost:0 你一定會很好奇為什麼是localhost:0 請參考:SSH Secure tunnel http://benjr.tw/?q=node/105在putty 选项Under Connection -> SSH -> Tunnels 可以看到这边的主角X11 forwarding. 请动”Enable X11 forwarding” 这一选项并将”X display location” 设并为localhost:0 你一定会很好奇为什么是localhost:0请参考:SSH Secure tunnel http://benjr.tw/?q=node/105
 
在Putty 的session 選擇你要連接的Host name ,SSH 預設port 為22.載入之後你所有執行的X-window 程式都會被導入到目前你的windows 系統上.在Putty 的session 选择你要连接的Host name ,SSH 预设port 为22.载入之后你所有执行的X-window 程式都会被导入到目前你的windows 系统上.
 
但是老實說用了一會就開始後悔了,雖然一般的小程式的顯示都可以轉到windows 上但是大多的,比如(#system-config-display) 都是秀出錯誤訊息,但是老实说用了一会就开始后悔了,虽然一般的小程式的显示都可以转到windows 上但是大多的,比如(#system-config-display) 都是秀出错误讯息,
 
The program ‘xconf.py’ received an X Window System error. The program ‘xconf.py’ received an X Window System error.
This probably reflects a bug in the program. This probably reflects a bug in the program.
The error was ‘BadMatch (invalid parameter attributes)’. The error was ‘BadMatch (invalid parameter attributes)’.
(Details: serial 638 error_code 8 request_code 72 minor_code 0) (Details: serial 638 error_code 8 request_code 72 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously; (Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it. that is, you will receive the error a while after causing it.
To debug your program, run it with the –sync command line To debug your program, run it with the –sync command line
option to change this behavior. You can then get a meaningful option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.) backtrace from your debugger if you break on the gdk_x_error() function.)
 
加上它的傳輸反應並不是很快速,像我將Linux 上的firefox 畫面轉到Windows 下來用大多的時間都在等待畫面的傳送,所以如果沒有安全上的考慮還是VNC(Virtual Network Computing) 的解決方式會是比較合適的方案.加上它的传输反应并不是很快速,像我将Linux 上的firefox 画面转到Windows 下来用大多的时间都在等待画面的传送,所以如果没有安全上的考虑还是VNC(Virtual Network Computing) 的解决方式会是比较合适的方案。
本文是我找x-deep/32这个软件的用法时,无意间在一个台湾同胞的博客上发现的。写的不错,经本人测试发现用起来很鸡胁。不如vnc和xmanager效果。好。不过该兄也并非原创,是从http://www.caslab.queensu.ca/LabHelp/XServer/ 这个站点上摘下来的。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注