首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我是否可以在租用的主机上通过ssh转发X11而不支持转发?

我是否可以在租用的主机上通过ssh转发X11而不支持转发?
EN

Unix & Linux用户
提问于 2018-07-14 17:29:55
回答 1查看 1.3K关注 0票数 4

我有一个GUI程序,它拥有在租来的Ubuntu主机上运行所需的所有库,但是主机本身拒绝使用-X在ssh连接期间设置X转发的尝试。strace显示UI程序可以运行,但是当它没有显示时会停止。我没有对租来的主机的根访问权限,它没有配置为普通用户转发X11,并且对主机的支持说他们不支持用户。

是否有任何方法进行X转发,因为我只需要一个关键程序?ssh -X -v只是报告:

代码语言:javascript
复制
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
...
debug1: Remote: /usr/home/ipdb/.ssh/authorized_keys:2: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug2: x11_get_proto: /usr/bin/xauth  list unix:10.0 2>/dev/null
debug1: Requesting X11 forwarding with authentication spoofing.
debug2: channel 0: request x11-req confirm 1
...
X11 forwarding request failed on channel 0

考虑到本地和远程主机都在防火墙后面(因此DISPLAY=$REMOTEHOST:0无法工作),是否有任何方法手动配置?主机有一个xauth和xhost,我从同一个dist版本的Ubuntu主机上复制了xauth和xhost。

~/..ssh/rc在连接期间运行,但没有传递给它的任何参数。

我怀疑对主机上不存在的/usr/bin/xauth的引用是问题吗?我可以运行我自己的sshd并用正确的xauth路径配置它吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-11-19 18:31:44

按照各种指南,我将文件/etc/ssh/sshd_config复制到一个新目录中,然后在同一个目录中运行以下命令来创建一个新的密钥对:

代码语言:javascript
复制
ssh-keygen -f myrsa -N ''

我从类似的Linux系统复制了xauth可执行文件,并将其放在同一个目录中。

然后,我用以下行修改了sshd_config文件:

代码语言:javascript
复制
Port 22220

HostKey /path/to/directory/myrsa

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
XAuthLocation /path/to/directory/xauth

现在,我可以在端口22220上使用以下命令启动我自己的ssh服务器,并启用X转发:

代码语言:javascript
复制
/usr/sbin/sshd -d -D -f /path/to/directory/sshd_config

并使用ssh命令连接到它:

代码语言:javascript
复制
ssh -X -p 22220 <hostname>

连接之后,我检查是否设置了环境变量显示。

为了在这个主机上运行我的X程序,我还需要将几个库文件(如libxkbfile.so.1 )从安装了X支持的类似的Linux系统复制到同一个目录中;我通过在我试图运行的X程序上运行ldd来确定这一点,寻找未解决的库,然后使用ldconfig -p | fgrep libxkbfile.so.1在工作系统中找到它们,并使用scp将它们复制到目标系统。然后我开始

代码语言:javascript
复制
set LD_LIBRARY_PATH=/path/to/directory

这样就可以找到额外的库,并且能够运行X程序并在我的本地系统上看到UI。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/456322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档