如何 ssh -Y 然后 su - <another user> 并仍然将 X 应用程序转发到您的本地计算机

nas*_*ass 15 su ssh-tunneling x11

“获取”(即在本地绘制)一个远程运行的 linux 应用程序很容易:如果我ssh -Y到远程机器并运行一个应用程序,该应用程序肯定会在我的本地桌面中弹出。

但是,如果我在远程机器上通过 ssh 连接su到另一个用户,则无法将 X 应用程序转发到我的本地机器。它说wrong authentication

我不知道如何处理这个案子。将echo $DISPLAY仍然是正确的(由初始设置ssh -Y登录),但会话cookie大概只能设置为登录SSH的初始用户。

我怎样才能克服这个困难并转发由不同用户运行的其他 X 应用程序?

我不直接 ssh'ing 的原因是因为我不希望通过 ssh 访问该用户(它是“virtualbox”用户,这显然是机器人试图通过 ssh 连接到该服务器的一个简单目标)...

phe*_*mer 12

当您通过启用 X11 转发的 ssh 连接到移除机器时,服务器上的 ssh 会.Xauthority在用户的主目录中创建一个文件。因为 ssh 在 TCP 套接字上侦听 X11,所以任何人都可以连接。因为任何人都可以连接,所以我们需要一些方法来防止任何人使用您的显示器。这是通过该.Xauthority文件完成的。该文件包含一个“cookie”,它呈现给 X11 服务器,用于验证应允许客户端连接。

跳过所有细节,如果您将该.Xauthority文件复制到目标用户的主目录(并授予他们所有权),您应该能够连接。


小智 8

  1. ssh -Y 到远程机器作为你自己。
  2. 在那里,键入xauth list。出现 MAGIC-COOKIE 项目列表。您的登录会话很可能是列表中的底部会话。(通过查看主机名和 UNIX 编号代码来检查这一点,并将其与您从外壳中提取的主机名和当前的 localhost:## DISPLAY env 变量进行比较。)
  3. 切换用户。
  4. 键入xauth add+从上方的整个MAGIC-COOKIE线。
  5. 图形现在应该出现。快速测试一下xlogo

  • xauth add 中没有“+”。例如,只需 xauth 添加 ubuntu/unix:10 MIT-MAGIC-COOKIE-1 6b49de7c34409d5ac69beab31d12ec94 (2认同)