如何通过 ssh 获取当前窗口的 xprop 输出?

如何通过 ssh 获取当前窗口的 xprop 输出?

在我的设备 A 上,我正在使用 dwm 运行 x11。我想从设备 B ssh 到设备 A 并获取我关注设备 A 的窗口的 xprop 输出。当我在 dwm 中设备 a 的终端中时,xprop -id "$(xdotool getactivewindow)"在我的终端模拟器中执行,我得到 xprop我的终端模拟器的输出。但是,当我通过 ssh 执行此命令时,我得到以下输出:

Error: DISPLAY environment variable is empty. Is there an Xorg or other X server running? You can try setting 'export DISPLAY=:0' and trying again.
Failed creating new xdo instance.
xprop:  unable to open display ''

当我这样做时export DISPLAY=:0(:0 是我在设备 A 上的终端模拟器中检查 $DISPLAY 时的值),上面的命令会产生以下错误:

Authorization required, but no authorization protocol specified
Failed creating new xdo instance.
Authorization required, but no authorization protocol specified
xprop:  unable to open display ':0'

我该如何解决这个问题(指定授权协议或任何必要的协议)?

答案1

这取决于你的发行版如何进行X授权,我对dwm.一种方法是将“MIT magic cookie”存储在~/.Xauthority.您可以使用 进行修改xauth,请参阅man xauth

如果您执行类似的操作ps axu | grep X,您将看到 X 服务器的命令行,并且在我的发行版上,这包括一个选项-auth /name/to/authfile。我可以直接将此文件复制到~/.Xauthority(需要读取权限,例如 vs sudo),因此我可以授权其他用户或 ssh 连接。

这可能适用于您的发行版,也可能不适用于您的发行版。

(您还会得到建议xhost +,这比获取正确的 cookie 更不安全)。

相关内容