2008-12-10

Ubuntu安装NX

  据说NX是所谓下一代图形远程登录技术,是不是就不知道了,但肯定比直接用vnc强悍的多。上次系统有毛病,装不成功,这次继续。

首先要装好ssh服务。
sudo apt-get install openssh-server

配置:
vi /etc/ssh/sshd_config
该怎么改就改成啥样吧。

配置认证用的密钥:
可以直接用服务器生成再分发或者由客户端生成传到服务器上:
前者:
ssh-keygen -b 4096 -t dsa
生成完以后保存一份公钥为
~/.ssh/authorize_keys
之后分发这份公钥。

后者:
比如用secureCRT生成的公钥,传到服务器上要先转换一下格式:
ssh-keygen -i -f identity.pub > openssh.pubkey
之后还是拷贝到~/.ssh/authorize_keys
即可

接下来就开始安装nx了。
因为nx本身和ssh一样是商业技术,所以我们用freenx
根据ubuntu的wiki,我们这样做:
先添加源:
vi /etc/apt/source.list
因为是ubuntu 8.10,所以安装freenx需要添加这个更新源:

deb http://ppa.launchpad.net/freenx-team/ubuntu intrepid main
deb-src http://ppa.launchpad.net/freenx-team/ubuntu intrepid main
ubuntu 8.04之后的版本直接
sudo apt-get update
sudo apt-get install freenx

装好后先修改一下ssh的配置,因为nx是基于ssh的,所以需要改一些东西,把相应内容设置成如下:
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys2


如果你ssh监听的不是默认的22端口,还需要修改一下nx的设置:
vi /etc/nxserver/node.conf
注意这个配置文件不允许等号之间有空格。

好了,这样nx server就搞定了。剩下就是客户端的问题:
windows下必须要 nomechine的nxclient 1.5版本,据说新版本无法连接freenx的服务器。
可以到http://www.industrial-statistics.com/info/nxclients?IndStats=bbf349f90a518f5a54f290e887d9c768下载。
我这里用windows 1.5.0 build 114是不能用的。但是windows 1.5.0 build 103可以用。
至于那个windows 1.5.0 build 106就没有试了。

在使用上,freenx server默认安装好使用的是standard NoMachine key来进行认证。很明显,只需要保持默认设置输入密码就可以登录了。先体验一把美妙的安全的gui远程界面吧。
不过如果ssh设置禁用密码认证的话就比较麻烦。而且有时候还需要使用用户自己的公钥来认证。另外,因为默认使用,如果一旦客户使用若口令的话无疑是一种大风险。
这样就需要进行如下配置:
sudo dpkg-reconfigure freenx-server
选择create new custom key
之后
su root
cd /var/lib/nxserver/home/custom_keys
cp client.id_dsa.key /home/testuser/.ssh/nx_client.id_dsa.key

这样就把生成的key拷贝出来了。不过由于权限问题不能下载,所以重新分配一下权限:
sudo chmod 644 /home/testuser/.ssh/nx_client.id_dsa.key
之后分发到你需要登录此服务器的电脑上,在client那里导入这个key就可以登录了。

  不过这里我还是没能解决ssh公钥验证登录的要求。因为nxclient只能导入一个密钥。而那个密钥,应该是nx这个用户home目录下的.ssh目录中的公钥,对应的是nx帐户的私钥authority_keys2,但是,问题在于按照nx的模式,应该是先登录到主机用nx的用户。之后再转成各个帐户的session。所以这里不能通过修改那个customkey来实现其他帐户的ssh验证登录。
不过目前我了解的只是nx的表面上的东西,也许其他设置能够配置出我们的需求吧。

最后上传一张google到的nx的架构图:

没有评论: