首先,我想做的是:
我想通过ssh
登录到服务器。然后通过sudo su user
更改用户,并在我的屏幕上启动一些应用程序。
有些同事是这样做的
su user
export DISPLAY=<IP>:0
它起作用了。
我通过ssh -X user@server
连接到服务器。然后启动一个X11应用程序。这很好(尽管有警告)。
警告:
libEGL warning: DRI3: failed to query the version
libEGL warning: DRI2: failed to authenticate
qt.qpa.xcb: QXcbConnection: XCB error: 1 (BadRequest), sequence: 414, resource id: 1897, major code: 155 (Unknown), minor code: 1
如果运行sudo su
(或sudo su user
)并启动程序或通过sudo myprogram
运行程序,就会出现错误。
错误:
X11 connection rejected because of wrong authentication.
qt.qpa.xcb: could not connect to display localhost:11.0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Aborted
我找到了一些关于这个问题的文章。
因此,通过以下方式扩展/etc/pam.d/su
文件和/etc/pam/sudo
文件
session optional pam_xauth.so
后来,我通过添加以下内容更改了/etc/ssh/sshd_config
:
X11Forwarding yes
并通过systemctl restart ssh.service
重新启动sshd。ssh -T
说x11forwarding yes
但什么都没变。
有人知道该怎么做吗?在进行更改后,检查对用户程序配置的一些更改是非常重要的。
发布于 2022-07-14 03:10:31
由于许多人会带着同样的错误信息来到这里,而没有意识到这与su
的使用无关,我想指出,类似的症状现在发生的原因完全不同:
任何安装了Snap的东西都不起作用。因此,xeyes
和xclock
可能会工作,但是在Ubuntu上安装chromium-browser
或firefox
是行不通的。
解决方法是在运行远程export XAUTHORITY=$HOME/.Xauthority
应用程序之前只执行: X11。
发布于 2021-10-22 10:07:22
不安全选项:
在您登录的主机上,执行
xhost +
或者,只是更安全一点
xhost <IP you want to log in to>
这将允许来自远程主机的连接。
为什么这样不安全?来自该主机的任何程序和用户(或来自任何主机的任何程序/用户,使用xhost +
)将能够访问您的屏幕并读取在您执行xhost
的机器上的所有按键。
更安全的选择:
将X11服务器的授权密钥添加到远程计算机:
在本地机器上,列出必要的“魔术曲奇”:
# xauth list
hostname/unix:0 MIT-MAGIC-COOKIE-1 0123456789abcdef0123456789abcdef
在远程计算机上,将秘密添加到您的~/.Xauthority
文件中,再使用xauth
最简单:
# setenv DISPLAY <ORIGIN_IP>:0
# xauth add <ORIGIN_IP>:0 MIT-MAGIC-COOKIE-1 0123456789abcdef0123456789abcdef
请注意,这些机器之间的X11协议数据仍未加密,因此容易受到攻击。
发布于 2021-12-22 03:53:20
假设user1是原始用户(您知道该用户的密码),而user2是目标用户(未知密码),那么我可以让它工作:
% ssh -Y user1@target-box
Password: xxxxxxxxxxxxx
user1@target-box% sudo -u user2 bash
Password: xxxxxxxxxxxxx
user2@target-box% cp ~user1/.Xauthority ~user2
user2@target-box% xterm &
请注意,这也假设正确的sshd配置,您在您的帖子中详细说明。
https://unix.stackexchange.com/questions/674214
复制相似问题