on it road.com
sudo 用户的 X11 转发
仅仅设置 DISPLAY 是不够的。
X 身份验证基于 cookie,因此需要设置发起连接的用户使用的 cookie。
以下过程允许 sudo 用户使用基于 ssh 的 X11 隧道:
- 使用 -X 选项和 ssh 连接远程主机。
# ssh -X root@remote-host
- 现在列出为当前用户设置的 coockie。
# xauth list $DISPLAY node01.onitroad.com/unix:10 MIT-MAGIC-COOKIE-1 dacbc5765ec54a1d7115a172147866aa # echo $DSIPLAY localhost:10.0
- 使用 sudo 切换到另一个用户帐户。
将上述命令输出中的 cookie 添加到 sudo 用户。
# sudo su - [user] # xauth add node01.onitroad.com/unix:10 MIT-MAGIC-COOKIE-1 dacbc5765ec54a1d7115a172147866aa
- 再次为 sudo 用户导出步骤 2 中的显示。
尝试使用命令 xclock 来验证 x 客户端应用程序是否按预期工作。
# export DISPLAY=localhost:10.0 # xclock
要访问 X 客户端应用程序,例如 system-config-date、xclock、vncviewer,我们需要将远程主机的 DISPLAY 设置导出到本地服务器。
这通常使用以下命令完成。
# ssh root@remotehost remotehost# export DISPLAY=x.x.x.x:y.y
其中 x.x.x.x:y.y 是我们连接到远程主机的系统的显示设置。
我们还可以在 ssh 中使用 -X 选项直接导出远程主机上的 DISPLAY。
# ssh -X root@remotehost
但是现在,如果我们尝试切换到远程系统上的另一个用户并再次导出显示,我们将收到错误消息“错误:无法打开显示:”。
# ssh -X root@remotehost # su - [username] # export DISPLAY=x.x.x.x:y.y # xclock Error: Can't open display: x.x.x.x:y.y
日期:2020-09-17 00:11:55 来源:oir作者:oir