X over ssh 对一个用户有效,但对另一个用户无效

X over ssh 对一个用户有效,但对另一个用户无效

我有一台 CentOS 6.5 服务器,情况如下:

  • 我可以从 Mac OS X 计算机通过 ssh 连接到此服务器的 root 用户。连接速度相对较快,并允许我启动 xterm 会话。

  • 我可以从同一台 Mac OS X 机器通过 ssh 连接到同一台服务器上的不同帐户,但连接需要一段时间,并且不允许我启动 xterm 会话(出现相当常见的“xterm Xt 错误:无法打开显示:localhost:10.0”错误)。

我感到困惑的是为什么 root 可以完美运行,而其他用户却不行。换句话说,1. 为什么“root”用户在 ssh 连接上速度很快,而其他用户(“wmsodbc”)却不行?2. 为什么“root”用户允许我启动 xterm 窗口,而其他用户却不允许?

请注意,我两次都以完全相同的方式连接到计算机,并且使用完全相同的 ssh 配置。唯一改变的是用户(“ssh root@server”或“ssh wmsodbc@server”)。

我想象这是以下某个问题,但我不知道如何找出哪一个:

  1. Mac OS X 设置
  2. CentOS 6.5 常规服务器设置
  3. 我的其他用户(不起作用的用户)的设置不知何故是错误的

请注意,我直接从另一个较旧的 RedHat Enterprise 服务器复制了此用户 ( wmsodbc ),而在该服务器上我根本没有遇到此问题。

另外,我认为我在进行 ssh 连接时启用 -vvv 调试时实际上找到了“连接速度较慢”的原因:xauth 在尝试锁定文件时超时。仍然不介意在这个问题上得到帮助,但我还将搜索 xauth 超时的原因 - 我在 Google 上看到了很多关于该问题的参考资料。

答案1

好的,我终于找到问题了。它与 SELinux 有关。如果您遇到过类似的问题,一个简单的测试是“setenforce 0”暂时将其关闭。如果在“setenforce 0”时有效,但在“setenforce 1”时无效,则问题出在 SELinux 相关问题上。就我而言,我必须运行以下命令:

chcon 'unconfined_u:object_r:user_home_dir_t:s0' $HOME

很难看清,因为我的“/home/wmsodbc”实际上是到其他地方的链接:

lrwxrwxrwx. wmsodbc wms unconfined_u:object_r:home_root_t:s0 /home/wmsodbc -> /other/wmsodbc
drwx--x--x. wmsodbc wms unconfined_u:object_r:user_home_dir_t:s0 /other/wmsodbc

也许这对其他人来说也很好。

相关内容