ssh & display

时间:2023-03-09 00:27:00
ssh & display

在Windows下用ssh连接服务器的话putty是一个小巧而且实用的工具,如果想要图形界面,可以使用X工具配合putty。

或者直接使用xmanager enterprise,非 常方便。
 
如果在Ubuntu系统下,ssh客户端一般是自带的,如果没有可以执行sudo apt-get install openssh-client进行安装,

之后执行ps -e|grep ssh如果有ssh-agent那么就表示ssh客户端安装成功了。在终端可以输入

ssh username@192.168.1.100登录到192.168.1.100这个ssh服务器,然后会让你输入密码,之后就登录了。
 
ssh连接成功后,如果想要显示图形界面,需要做一些配置。步骤如下:
 
1、服务器端的ssh必须运行转发X界面,在ssh服务器中,找到/etc/ssh/sshd_config 这个配置文件,其中有一行

X11Forwarding yes,确保这个是yes(注意这个配置文件中的#是注释,确保X11Forwarding前面没有#注释),

然后重启ssh服务,cd /etc/init.d这个目录下执行 ./ssh restart
 
2、客户端配置,在/etc/ssh/ssh_config配置文件中,找到ForwardAgent yes,ForwardX11 yes,

ForwardX11Trusted yes这3个确保是yes(注意这个配置文件中的#是注释,确保你修改的行没有被注释掉)
 
3、配置完成后,进入终端,现在假设我们的Ubuntu客户端的ip是1.1.1.1(只是假设),而ssh服务器的ip是2.2.2.2。

下面是执行步骤,注意别弄错了:
 
首先终端未连接ssh之前,执行xhost +2.2.2.2 这个步骤是允许ssh服务器的X界面连接过来
 
然后执行ssh -X root@2.2.2.2 注意-X这个是大写的X,这个步骤是连接到ssh服务器,接着会要输入密码
 
这个时候终端已经连接到ssh服务器了,然后执行export DISPLAY=1.1.1.1:0.0这个步骤是把ssh服务器的X显示重新定位

到1.1.1.1的0.0显示器中,也就是我们的客户端
 
然后做个测试,执行xclock,等待。。。如果这个时候在你的Ubuntu界面中出现了一个时钟界面,那么恭喜你成功了。

在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后

使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动

程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容: DISPLAY=:0.0

xhost 是用来控制X server访问权限的,这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上。

通常当你从hostA登陆到hostB上运行hostB上的应用程序时,做为应用程序来说,hostA是client,但是作为图形来说,

是在hostA上显示的,需要使用hostA的Xserver,所以hostA是 server.因此在登陆到hostB前,需要在hostA上

运行xhost +,来使其它用户能够访问hostA的Xserver.