云中有一台Linux主机,只允许SSH登录。有时我需要在SSH会话时执行一些有图形界面的程序,如何才可以将显示投射到客户端呢?

传统的方法有:

  • 通过VNC,如TigerVNC,但需要额外安装包和配置
  • 通过云平台的控制台,并非所有公有云都提供
  • 通过SSH X Forwarding

本文讲述最后一种方法。

  1. 首先在VirtualBox中启动一个Linux VM到图形界面,因为我们需要使用它的X Server。
  2. 确认服务器端(云主机)中已允许X11 Forwarding
[root@mbshost1 .ssh]# grep X11 /etc/ssh/sshd_config
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#       X11Forwarding no

修改后需重启sshd服务,在Linux 6上:

service sshd restart
  1. 确认xauth程序已安装
[root@mbshost1 ~]# which xauth
/bin/xauth

如果没有安装,则安装以下包,这些包在Linux安装光盘中都可以找到:

rpm -UvH libICE-1.0.6-1.el6.x86_64.rpm
rpm -UvH libSM-1.2.1-2.el6.x86_64.rpm
rpm -UvH libXt-1.1.4-6.1.el6.x86_64.rpm
rpm -UvH libXmu-1.1.1-2.el6.x86_64.rpm
rpm -UvH xorg-x11-xauth-1.0.9-1.el6.x86_64.rpm

最简单的就是用yum安装:

sudo yum install xauth
  1. 客户端连接时指定-X选项,可以附加-v选项以调试
[timesten@localhost .ssh]$ ssh  -v -X oracle@mbshost1-timestenscaleout18-uiqb7xbl.srv.ravcloud.com -p 22
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Connecting to mbshost1-timestenscaleout18-uiqb7xbl.srv.ravcloud.com [129.213.143.133] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/timesten/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/timesten/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/timesten/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/timesten/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/timesten/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/timesten/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/timesten/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/timesten/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
debug1: match: OpenSSH_6.6.1 pat OpenSSH_6.6.1* compat 0x04000000
debug1: Authenticating to mbshost1-timestenscaleout18-uiqb7xbl.srv.ravcloud.com:22 as 'oracle'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: curve25519-sha256@libssh.org need=64 dh_need=64
debug1: kex: curve25519-sha256@libssh.org need=64 dh_need=64
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:Cvt7VNgtloIM8NRrJMcNmEffJCF1JTVmb9PwZ3udQ8k
debug1: Host 'mbshost1-timestenscaleout18-uiqb7xbl.srv.ravcloud.com' is known and matches the ECDSA host key.
debug1: Found key in /home/timesten/.ssh/known_hosts:3
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available (default cache: KEYRING:persistent:1004)debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available (default cache: KEYRING:persistent:1004)debug1: Next authentication method: publickey
debug1: Trying private key: /home/timesten/.ssh/id_rsa
debug1: Authentication succeeded (publickey).
Authenticated to mbshost1-timestenscaleout18-uiqb7xbl.srv.ravcloud.com ([129.213.143.133]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: exec
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env XMODIFIERS = @im=none
debug1: Sending env LANG = en_US.UTF-8
Last login: Sun Dec  9 18:54:57 2018 from 202.45.129.203
/usr/bin/xauth:  file /home/oracle/.Xauthority does not exist
  1. 确认X11 Forwarding生效
    运行带图形界面的程序如jconsole,因为网络延迟,看到界面会有点慢:
[oracle@mbshost1 ~]$ jconsole
debug1: client_input_channel_open: ctype x11 rchan 3 win 65536 max 16384
debug1: client_request_x11: request from ::1 47165
debug1: channel 1: new [x11]
debug1: confirm x11
debug1: client_input_channel_open: ctype x11 rchan 4 win 65536 max 16384
debug1: client_request_x11: request from ::1 47166
debug1: channel 2: new [x11]
debug1: confirm x11
debug1: channel 1: FORCE input drain
debug1: channel 2: FORCE input drain

界面出来了:

参考

  1. How to forward X over SSH to run graphics applications remotely?

在SSH会话中如何实现 X11 Forwarding相关推荐

  1. linux ssh ip地址命令,关于Linux:在ssh会话中查找客户机的IP地址

    我有一个脚本,由使用ssh登录到服务器的人运行. 有没有办法自动找出用户连接的IP地址? 当然,我可以问用户(这是一个程序员的工具,所以没问题),但如果我刚刚发现的话,会更酷. 建议转到服务器故障,不 ...

  2. XShell免费版的安装配置教程以及使用教程—解决“WARNINGThe remote SSH server rejected X11 forwarding request.“警告

    目录 一.简介 二.XShell的作用 三.下载XShell 四.使用XShell连接Linux服务器 1.XShell初始化界面 2.点击"新建",新建会话 3. 填写会话信息 ...

  3. USRP E310启用SSH的X11 Forwarding功能

    SSH的X11 Forwarding功能提供了一个非常好的方法,在你的本地主机上执行远程主机的GUI程序. 1.USRP E310中做如下配置: 打开/etc/ssh/sshd_config,并添加如 ...

  4. Xshell登录Linux服务器 提示WARNING! The remote SSH server rejected X11 forwarding request 及 提示符显示-bash-4.2#

    用root登录 Xshell 登录Linux服务器 提示 WARNING! The remote SSH server rejected X11 forwarding request 以及 用户表示符 ...

  5. ssh X11 Forwarding(本地共享远程服务器界面)

    ssh -X untrusted ssh -Y trunsted在Client端显示运行在服务器(Server)上的图像化界面.可以通过SSH X11 Forwarding来实现. X11中的X指X协 ...

  6. linux ssh x11,使用SSH的X11 Forwarding远程执行GUI程序

    SSH的X11 Forwarding功能提供了一个非常好的方法,在你的本地主机上执行远程主机的GUI程序.比如你的开发环境可能是CentOS,你需要在CentOS下编码.但你的工作环境可能是Ubunt ...

  7. QVM问题纪要:Warning:The remote SSH server rejected X11 forwarding request.

    背景 连接七牛云主机时初夏Warning:The remote SSH server rejected X11 forwarding request.报错. 解决方法 方法1:修改配置文件 vim / ...

  8. Xshell 连接报错解决:WARNING! The remote SSH server rejected X11 forwarding request.

    一.报错情况 WARNING! The remote SSH server rejected X11 forwarding request. 二.解决方案 (1)编辑文件:/etc/ssh/sshd_ ...

  9. Xshell报错“The remote SSH server rejected X11 forwarding request.”

    xshell连接centos7,报错:"The remote SSH server rejected X11 forwarding request." 打开文件/etc/ssh/s ...

  10. 如何在ssh 工具 Linux screen会话中使用鼠标进行上下滚动

    经过几次发现  除xshell外, WindTerm  finalshell   MobaXterm  都是进入会话后,发现其界面无法滚动屏幕向上查看    如果想要在Linux screen会话中使 ...

最新文章

  1. html 浮动脱离文档流,CSS标准文档流与脱离文档流
  2. Spring访问数据库异常的处理方法(转)
  3. JavaScript中getter/setter的实现
  4. 菜鸟学java要多久_菜鸟学java,根本停不下来!
  5. CSV文件在Python中的几种处理方式
  6. Windows 7 时代即将终结!
  7. 设计模式之三:观察者模式
  8. (维基百科LaTeX公式显示异常)解决方法
  9. mongodb php存储日志,laravel 框架使用mongodb 保存日志
  10. 10款精选的后台管理系统,收藏吧!
  11. 速领,阿里巴巴Java开发手册终极版
  12. 【转•科普】为什么Nikola Tesla是迄今为止最伟大的极客(爱迪生啊爱迪生)
  13. 法大大“实槌”获评《互联网周刊》“2019年度特别创新TOP50”
  14. 好汉歌计算机音乐,好汉歌歌曲赏析
  15. 未曾有光照耀的地方,皆是正雅齿科下一个战场
  16. 转载——天才与锻炼(华罗庚)
  17. java安装不了为什么_为什么java安装不了?
  18. 酒吧类型与其娱乐项目设置
  19. i am freshman
  20. 解决安装import nonebot后报错importError问题

热门文章

  1. 百战c++(数据库2)
  2. C语言知识层次结构图
  3. 调整HTML5画布中图像的大小
  4. Sping入门(1) 了解依赖注入(DI)和应用切片(AOP)
  5. js 除了自己获取其他所有兄弟节点
  6. The client-side rendered virtual DOM tree is not matching server-rendered content. 问题
  7. 寻求任意颜色转CMY的方法,帮个忙
  8. 用Photoshop将照片卡通化
  9. 一篇文章带你搞懂 JPA 和 hibernate
  10. msvcr110.dll丢失的解决方法?有哪些修复的方法?