SSH X转发更改用户帐户

时间:2014-02-02 16:12:59

标签: oracle ssh rhel xserver

我正在尝试制作一个脚本来安装或多或少自动安装oracle数据库以及我自己的其他一些应用程序。我还没有写过一行,因为我想先手动完成所有步骤。

所以,我的环境如下。我有RHEL 5没有图形界面。我通过SSH以root身份从Windows笔记本电脑连接到服务器。我启用了XForwarding,所以当我使用root帐户登录时,我可以运行xdpyinfo,以便检查XServer配置。

我需要XForwarding,因为Oracle DB安装过程需要XServer。但是,Oracle要求用户oracle执行安装。我已经创建了oracle用户,但是当将用户从root更改为oracle时,我无法再运行xdpyinfo命令,因此Oracle安装过程失败。我收到以下错误:

Xlib: connection to "localhost:10.0" refused by server
Xlib: PuTTY X11 proxy: wrong authorisation protocol attempted
xdpyinfo:  unable to open display "localhost:10.0".

我曾尝试使用xhost让我的笔记本电脑访问我的服务器,但我也失败了。

1 个答案:

答案 0 :(得分:3)

如果您确实需要这样做,那么当您是root用户时,请获取当前$DISPLAY值,尤其是冒号后的第一个值,即10。然后找到您的会话的当前X授权令牌:

xauth list | grep ":10 "

这会给你类似的东西:

hostname/unix:10  MIT-MAGIC-COOKIE-1  2b3e51af01827d448acd733bcbcaebd6

在您su帐户oracle之后,$DISPLAY可能仍然设置,但如果没有,则将其设置为与您的基础会话相匹配。然后将xauth令牌添加到当前会话中:

xauth add hostname/unix:10 MIT-MAGIC-COOKIE-1 2b3e51af01827d448acd733bcbcaebd6

完成后,您可以使用以下方式进行清理:

xauth remove hostname/unix:10

这是假设PuTTY配置为使用MIT-Magic-Cookie-1作为远程X11身份验证协议,在Connection-> SSH-> X11部分中。如果设置为MDM-Authorization-1,则您获得并使用xauth设置的值将改为XDM-AUTHORIZATION-1

断开root并以ssh开始新oracle会话以继续安装可能更为简单,这也可确保您不会意外地执行任何意外操作root。好吧,无论如何,你必须运行root.sh

如果你做silent install with a response file then you don't need a working X11 connection anyway;你只需要设置$DISPLAY,但实际上没有在该显示上打开任何内容,因此xdpyinfo或任何其他X11命令失败并不重要。我不确定您是如何考虑编写X11会话的脚本,但即使可能,静默安装也会更简单,更可重复。