Ubuntu下通过SSH转发X窗口需要具备的条件

来源:互联网 发布:c语言五子棋游戏源代码 编辑:程序博客网 时间:2024/06/05 04:47

http://blog.csdn.net/ggicci/article/details/8238118


我们可以通过 Ubuntu 自带的 SSH 来远程登录自己的主机:比如 ssh ggicci@***.***.***.***(IP),有的时候我们希望在当前机器上调用远程的一些有界面的程序,比如说firefox。那么这就需要一些条件了。

        连接ssh可能发生的错误(我遇到的):

  • Network Error : Connection Refused.(你可以先 ping 远程主机的 IP,如果 Ping 通,说明你的机子还缺少 X 转发的条件,请看下面)


        现在我们的远程机器称为服务端(Server),当前机器成为客户端(Client),我们通过客户端来连接远程主机(即服务端),如果需要服务端提供X窗口转发的功能,也就是在客户端能调用远程的火狐浏览器等需要界面支持的程序,那么条件如下:

 

  • 在客户端,通过在 ssh 命令添加 –X(大写的哦)参数来启用 X11 转发,不过你可以通过设置~/.ssh/config 文件中 ForwardX11 yes 来使得X11转发为所有的连接或者指定的连接是默认的。
  • 在服务端,/etc/ssh/sshd_config 中必须指定X11Forwarding yes ,默认是 no(不过有些Linux版本默认是yes),用户是不能覆盖这个设置的。
  • 在服务端还必须装有 xauth 。如果机子上有任何 X11 的程序,xauth 很有可能就已经装好了。在不太可能的情况下,xauth 被安装在一个不标准的地方,你可以通过~/.ssh/rc 来调用它(服务端哦)。
  • 需要注意的是,你不需要在服务端做任何环境变量的修改。 DISPLAY 和 XAUTHORITY 会自动地被设置为正确的值。如果你在执行 ssh 命令的过程中报错说DISPLAY 没有设置好,那么说明 ssh 根本就没有转发 X11 连接。
  • 来确认 ssh 转发 X11,通过 ssh –v –X 检查,如果有一行输出中包含 Requesting X11 forwarding,说明服务端有转发 X11 的能力了。

 

        如果机子上没有 ssh,通过以下命令安装: sudo apt-get install openssh-server openssh-client 。


0 0