我一直想让 X11 Forwarding 与 PuTTY 配合使用,我使用的 X Window System 是 Xming。当我运行 Xming 并与我的服务器建立新连接时,我在命令后收到以下内容:
$ firefox
PuTTY X11 proxy: wrong authentication protocol attemptedPuTTY X11 proxy: wrong authentication protocol attemptedError: cannot open display: localhost:10.168
$ google-chrome
PuTTY X11 proxy: wrong authentication protocol attempted
(google-chrome:7083): Gtk-WARNING **: cannot open display: localhost:10.168
$ gedit
PuTTY X11 proxy: wrong authentication protocol attempted
** (gedit:6990): WARNING **: Could not open X display
PuTTY X11 proxy: wrong authentication protocol attemptedCannot open display:
Run 'gedit --help' to see a full list of available command line options.
$ gnome-system-monitor
PuTTY X11 proxy: wrong authentication protocol attempted
** (gnome-system-monitor:7024): WARNING **: Could not open X display
PuTTY X11 proxy: wrong authentication protocol attempted
(gnome-system-monitor:7024): Gtk-WARNING **: cannot open display: localhost:10.168
我该如何修复这些错误并使 X11 Forwarding 正常工作?
答案1
复制自:http://www.math.umn.edu/systems_guide/putty_xwin32.html(无效链接:存档 2013-05-23)
配置Putty
- 添加 Unix 主机名
- 将协议切换为 SSH
- 在已保存的会话中输入会话名称
- 点击“保存”
- 从“类别”列表中展开“SSH”选项卡
- 从“SSH”列表中选择“X11”
- 勾选“启用 X11 转发”
- 从“类别”列表中选择“会话”
- 点击“保存”
在 Windows 上启动 X 服务器
配置 Xming
只需运行“所有程序 > Xming Xming”,如果您已经配置了 PuTTY,它就可以工作。
正在连接
- 开始 Xming
- 启动 Putty
- 双击您想要的已保存会话
- 根据要求输入用户名和密码
- 您现在应该能够在本地桌面上运行来自主机的 X 应用程序
编辑:要修复wrong authentication protocol attempted
错误,请尝试在 /etc/ssh/sshd_config 文件中启用“ForwardX11Trusted yes”,然后重新启动 OpenSSH 服务器。
答案2
我遇到了 2 个问题,发现这个问题与我的问题最接近,因此我认为我的解决方案对其他遇到同样问题的人会有所帮助。我的系统有 Cygwin/X (xinit 1.3.4-5) 和 PuTTY (0.64)。我通过在本地 startxbin 上设置 --listen tcp 并将 .Xauthority 的路径传递给 putty 来设法找到问题的根源。
首先,参考“PuTTY X11 代理:无法连接到转发的 X 服务器:网络错误:连接被拒绝”错误,您需要让 X 会话监听连接:打开 cygwin 终端并编辑 /usr/bin/startxwin 找到以下行...
defaultserverargs="-multiwindow"
并将其更改为...
defaultserverargs="-multiwindow -listen tcp"
其次,为了响应“需要授权,但未指定授权协议”错误,您需要让 putty 使用正确的 xauth 令牌(putty 内部似乎发生了一些奇怪的事情,因此xauth list
本地没有提供转发连接可以通过传入使用的令牌xauth add <token>
,它们似乎需要由 PuTTY 在连接时设置,才能使它们工作)。
通过运行(再次在 cygwin 终端中)在 Windows 域中找到 ~/.Xauthority 文件所在的路径
cd ~
explorer .
检查 .Xauthority 文件的属性并记下它的位置(选择它并按 CTRL+C 将其放入剪贴板)。
按照上面的示例启动 PuTTY(复制自http://www.math.umn.edu/systems_guide/putty_xwin32.html)
在“控制 SSH X11 转发的选项”页面上,您应该选中“启用 X11 转发”,并将“MIT-Magic-Cookie-1”设置为协议。
在“本地显示的 X 授权文件”字段下,单击“浏览”,然后使用您之前记下的 .Xauthority 文件的位置找到 .Xauthority 文件。单击“打开”以填充字段,然后返回会话(在 PuTTY 配置中)并保存会话。然后您可以单击“打开”。
现在您应该可以连接了。
答案3
答案4
Kruug 的解决方案只需执行下面给出的几个额外步骤即可。
当我使用 登录ec2-user
并随后切换到oracle
用户时。确保.Xauthority
将文件复制到oracle
用户主目录中。
cp /home/ec2-user/.Xauthority /home/oracle/
我如何测试?我安装了xclock
yum install xclock
然后我跑了xclock
(等待几秒钟,如果你看到一个模拟时钟的小弹出窗口,那就好了)
xclock