我在通过 SSH 进行 X 转发时遇到问题。我已经努力了很久,但似乎没人能帮我。
我现在采取了不同的策略。我想知道如何调试错误?
我应该查看哪些日志,应该设置哪些额外的标志(-v 等)以及我应该寻找什么?
进一步编辑:
如果我使用 Putty 登录到服务器并尝试xeyes
,我会得到:
PuTTY X11 代理:尝试了错误的授权协议错误:无法打开显示:localhost:10.0
如果我xauth generate $DISPLAY
得到:
PuTTY X11 代理:错误的授权协议 attemptedxauth:(argv):1:无法打开显示“localhost:10.0”。
答案1
我的解决方案一步一步:
1)使用选项 -X 远程主机登录 root
$ ssh -X[电子邮件保护]
2)检查是否存在 .Xauthority 文件
[root@localhost ~]# ls -al [root@localhost ~]# vim .Xauthority
3)将 .Xauthority 文件复制到其他用户的目录中
[root@localhost ~]# cp .Xauthority /home/oracle/ cp: 覆盖 `/home/oracle/.Xauthority'? y
4)设置此文件的权限
[root@localhost ~]# chown oracle:oinstall .Xauthority [root@localhost ~]# chmod 0600 .Xauthority
5)登录oracle用户
[root@localhost ~]# su - oracle
6)localhost:10.0中的显示设置
[oracle@localhost ~]$ echo $DISPLAY 本地主机:10.0 [oracle@localhost ~]$ ls -al
7)列出现有的xauth cookies
[oracle@localhost ~]$ xauth 列表 本地主机.本地域/unix:11 MIT-MAGIC-COOKIE-1 310f1b02c1080e73059391c193a1881b 本地主机.本地域/unix:10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb759
8)添加
[oracle@localhost ~]$ xauth 添加 localhost.localdomain/unix:10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb75
9)测试
[oracle@localhost ~]$ xclock
希望他们能服务!@wcaraza
答案2
确保 SSH 服务器已xauth
安装该工具,并且您的~/.Xauthority
文件可写。(不存在也没关系,只要xauth
可以创建它即可。)
检查 xauth 数据是否正在更新:
server$ xauth list
尝试手动添加虚拟 xauth 数据(再次在 SSH 服务器上),看看是否xauth
存在任何问题(例如无法创建锁文件或修改 Xauthority 文件本身):
server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2
如果有必要,请在下重新运行strace
。
LogLevel DEBUG2
通过在服务器配置中设置(/etc/ssh/sshd_config
)或直接在调试模式下启动 sshd,以调试模式运行 SSH 服务:
server$ sshd -rddp 12234
(在此示例中,12234
是您需要连接的临时 SSH 端口。任何空闲端口都可以。)
答案3
有效,有效。哈哈。
最后。
在发现问题不在于系统之后,通过添加测试用户(x 转发“开箱即用”),我认为我应该开始复制 .bash* 启动文件来对“损坏的”用户进行初始设置。
所有文件都没有什么不同,所以接下来我删除了用户的 .ssh 目录。当我 ssh 登录时,它抱怨“服务器拒绝我们的密钥”,但我可以使用密码登录。登录后,我可以完美地 x forward。
我现在将尝试再次设置密钥,看看是否也能让它工作。然后它就会恢复正常。
答案4
rm ~/.Xauth*
然后重新连接。
这对我来说很管用。有关更多信息细节