【问题标题】:Linux - launch recordMyDesktop by ssh tunnelLinux - 通过 ssh 隧道启动 recordMyDesktop
【发布时间】:2014-07-22 09:36:00
【问题描述】:

我制作了一个脚本(名称:“recordVideo”),它启动 recordMyDesktop 来捕获一个窗口。此脚本在计算机 1 上。使用计算机 2,我想使用 ssh 启动脚本。 这是我在计算机 1 上的脚本:

#!/bin/sh
cd /home/ivtuser/Bureau/
recordmydesktop --no-sound --delay 3 --windowid &(xwininfo -name "NAME_OF_WINDOW" | sed -n 's/.*Window id: \([0-9a-fx]\+\).*/\1/p')

我已经在 ssh_config 中设置了我的 ssh 参数:

ForwardX11 yes

和 sshd_config :

X11Forwarding yes

Xauth 已安装在我的 PC 上。 我尝试使用以下命令在本地模式下启动我的 ssh 测试:

$ ssh -X localhost
password: XXX
$ recordVideo

这是我的问题,recordmydesktop 停止响应:

X Error: BadAccess (attempt to access private resource denied)

我该如何解决这个问题。我迷路了 谢谢

【问题讨论】:

  • 在没有 ssh 的情况下,计算机 1 上是否可以使用相同的脚本?如果没有,那么它是一个用户权限问题,很可能您要连接的用户在设备上没有足够的权限。
  • 您是否使用具有适当超级用户权限的脚本...
  • 运行ssh -X computer-1 xtermssh -X computer-1 xdpyinfo 时会发生什么?
  • @mu & shiv garg :我可以在没有超级用户权限的情况下在计算机上运行我的脚本并且它可以工作。我只有在使用 ssh 时才会遇到问题。
  • @Aaron Digulla:目前我只用一台计算机进行了测试,在 localhost 中运行 ssh。我还没有将要安装它的两台计算机。

标签: linux ssh tunnel xserver


【解决方案1】:

有两种解决方案:

  1. SUID
  2. SSH 以 root 身份

如果不让您的计算机面临安全风险,很难做到第一个。

第二种解决方案使用ssh root@computer-1 /path/to/recordVideo以root身份登录并以root身份运行脚本。

还要确保$DISPLAY 变量设置正确。 ssh -X 应该为您执行此操作,或者您需要为连接到 X 服务器的所有命令指定选项 -display LOCAL:0.0(其中 LOCAL 是您坐在前面的计算机的 IP 地址或 DNS 名称)。

【讨论】:

  • 我在 root 模式下尝试了 ssh,但我遇到了完全相同的问题。
  • 还要确保在远程端正确设置$DISPLAY
  • 我试过 ForwardX11Trusted 是的:同样的问题我不明白你的“$DISPLAY”的东西。怎么查?
  • $DISPLAY 变量告诉 X 客户端它应该与哪个服务器通信。在您的情况下,您想连接到计算机 2 上运行的 X 服务器。但是ssh 准备好一切,以便客户端连接到运行ssh 的计算机上的X。你真的需要两台电脑来测试这个。设置虚拟机怎么样?
  • 好的,我会尽快用两台电脑测试一下。我没有考虑虚拟机,如果设置简单,我应该尝试一下。谢谢,我会告诉你结果的。
猜你喜欢
  • 2016-09-09
  • 2014-09-03
  • 2013-05-26
  • 2018-09-02
  • 2013-09-28
  • 2012-08-15
  • 2019-01-12
  • 1970-01-01
  • 2020-02-09
相关资源
最近更新 更多