如何先ssh -Y然后su-<另一个用户>并仍将X应用程序转发到本地计算机


13

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

但是,如果我在远程计算机中被切换时却将我su转移到其他用户,则无法将X应用程序转发到本地计算机。它说wrong authentication

我不确定该如何解决。将echo $DISPLAY仍然是正确的(由初始设置ssh -Y登录),但会话cookie大概只能设置为登录SSH的初始用户。

如何克服这个困难并转发由不同用户运行的其他X应用程序?

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

Answers:


12

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

跳过所有详细信息,如果将.Xauthority文件复制到目标用户的主目录(并授予他们所有权),则应该可以连接。


值得注意的是,即使执行此操作,切换用户后也需要正确设置DISPLAY变量。当使用“ sudo”可能会过滤掉环境时,这可能是一个问题。
克里斯·阿金

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

2
xauth添加中没有“ +”。例如,仅xauth添加ubuntu / unix:10 MIT-MAGIC-COOKIE-1 6b49de7c34409d5ac69beab31d12ec94
调谐的

1
USER="otherusername" && MAGIC_COOKIE=`xauth list | tail -n1` && su -c "xauth add $MAGIC_COOKIE" $USER && su - $USER
7yl4r

3

我喜欢Randy的回答,但对我而言效果并不理想。

这是我要工作的内容:

  1. ssh -Y as user1
  2. xauth list | grep `uname -n`
  3. 切换到user2
  4. unset XAUTHORITY
  5. xauth generate :0 .
  6. xauth add :0 . <KEY-FROM-STEP-2>

请注意步骤5和6中的两个句点。

如果我只是遵循Randy的回答,则user2的XAUTHORITY变量仍指向user1的.Xauthority文件。而且他的+键语法无效。


2

这不是答案,因此,如果找到一个答案,那显然是可取的。

如果没有,这是您难题的根本原因:

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

在我看来,这并不是一个很好的推理。配置正确的sshd的“机器人目标是什么”在很大程度上无关紧要。他们会在各地的22号端口附近嗡嗡作响吗?显然是这样。这是否意味着他们实际上就有成功的机会?

尝试四处搜寻有关某人的故事,该人曾经拥有一个随机的匿名bot 成功闯入sshd。我敢肯定这一定是发生在某个地方的人身上(当然,您可能永远都不知道),但是我找不到任何此类报道。阅读所使用的配置是很有趣的。

正确使用SSH会非常安全。如果不是这样,互联网贸易将是不可行的。那么,这些机器人为什么要打扰呢?“正确使用”主要是指强制性的公钥/私钥对。如果您这样做并且确信您的私钥是安全的(应该如此),请对sshd充满信心。

我认为所有的“闯入尝试”发生在所有的理由是,有一个庞大的身躯谁的用户不要做这样的事情询问关于U&L问题)和不单单阅读手册页和使用密码保护,这就像将您的ATM卡放在机器上的某个地方,上面写着“猜吧!”。

但是,如果您将您的私钥想成ATM卡之类的东西-实际上是由您自己保护的(实际上是安全的),那么目标将变得更加空灵。这些机器人可以做的所有事情就是证明是的,确实要花数千年的时间才能共同使用数千台机器来暴力破解2048位密钥。

如果您厌倦了阅读入侵尝试报告,请更改端口。我在这里看到人们把它当作“默默无闻的安全”,但是,在端口22上正确固定的sshd在端口57上的安全性不会降低,但是不会被随意打扰。当然,您所有的无人机敌人都可以通过端口扫描整个IP,但是您知道吗?他们没有。我猜想这是因为他们正在寻找的是正在运行一个甚至没有看过系统的人/etc/ssh/sshd_config,更少地了解自己并对其进行了调整。


我同意你所说的一切。但是我总是非常不安全(在您被烧伤后,在很多情况下,这不是他们教给您的吗?)。老实说,我要登录的PC是防火墙(无法从外部访问)。它的ssh在高端口上,有一个困难的密码,但是我仍然不禁感到“ virtualbox”是一个公共名称。某个人可能会选择将其合并到机器人代码中的代码。SSH密钥是一个很好的解决方案,尤其是与密码保护一起使用时。但是,如果我要使用USB,则必须在USB上携带轻量级Linux发行版。
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.