xauth、ssh 和缺少主目录

xauth、ssh 和缺少主目录

我们有几台服务器,通常一切都运行良好,但现在……
我们要安装一台新空调。这需要 36 个小时,在此期间几乎所有服务器都关闭了,只有 2 台剩余的服务器运行最重要的任务(即接收传入电子邮件、传递一些重要网站、登录服务器)。

每个人都被告知,当他们需要从主目录中获取适当的数据时,他们应该在删除之前获取它。长话短说:有人意识到他在其中一个服务器上运行了某个程序。没问题,他可以远程登录我们的登录服务器并在那里运行该程序,而无需主目录(二进制文件是本地的,必要的信息可以复制到/tmp)。这很有效,直到......
...用户需要运行 GUI 程序。我发现没有简单的方法可以让它运行,通常

ssh -Y honk@loginserver

就足够了,但现在主目录丢失了,ssh 无法将 cookies 复制到 ~/.Xauthority(因为包含主目录的文件服务器已关闭)。所有系统管理员都疑神疑鬼

  • 所有 X-Server 都只在本地监听,而不是在 TCP 端口上监听,因此无法进行远程 X 连接
  • SSH 配置是防水的 - 即无法设置环境变量。

我的问题是,由于 .Xauthority 不存在,ssh 生成的代理 MIT cookie 会丢失。如果我能以某种方式检索它,我可以在 /tmp 中重新输入 .Xauthority。

我想到唯一的其他选择(除了更改配置)是从远程主机到登录服务器建立一个隧道(netcat,或者更好的 ssh)并手动复制 cookie(不确定 tcp->unix 域套接字是否按预期工作)。

有什么好的建议吗(针对未来 - 现在我们的服务器已经启动)?

答案1

问题是 ssh 试图删除.Xauthority,但它正在写入主目录。用户(因为他们没有主目录)可能使用 密码登录/。普通用户无法写出/.Xauthority。您需要为他们提供一个主目录,即使它只是/tmp/joeuser

答案2

如果您在登录/身份验证阶段运行具有 pam 插件功能的任何程序,您可以添加一个 pam 模块,为“即将登录的用户”创建一个主目录(在 google 上搜索 pam_mkhomedir )

相关内容