我经常在实验室机器上运行大量实验(perl 脚本)。我目前正在运行实验的客户端机器运行的是 Ubuntu 14.04.5 LTS。
这些 perl 脚本,除其他功能外,还通过 ssh 连接到网络上的其他计算机以收集网络/vmstats。这些脚本一直运行良好,直到最近的一次更新(在客户端)出现问题,导致脚本运行异常缓慢,并且ssh
脚本中的每个命令都会生成以下错误消息:
Warning: No xauth data; using fake authentication data for X11 forwarding.
-vvv
当我在 ssh 命令上打开级别日志记录时,它们显示以下内容:
debug1: Entering interactive session.
debug2: callback start
debug2: x11_get_proto: /usr/bin/xauth list unix:10.0 2>/dev/null
***[HANGS FOR 20-30 SECONDS]***
Warning: No xauth data; using fake authentication data for X11 forwarding.
我阅读了所有我能找到的与“交互式会话缓慢”和 xauth 警告相关的 SO 和其他论坛的讨论,但没有一个解决方案真正起作用。
我还怀疑这些特定情况是否适用于我,主要是因为我能够毫无问题地从客户端计算机到服务器建立 ssh 会话 - 问题出在 perl 脚本中的 ssh。
我检查了 DISPLAY 环境变量,它正确地将其传递给 X11 服务器(这是输出):
echo $DISPLAY
localhost:10.0
xauth 也运行正常。我创建了一个从 shell 脚本内部调用的玩具 perl 脚本(尝试模拟实验室实验中发生的情况),它运行良好,没有任何问题。以下是我的玩具脚本:
mary.sh
#!/bin/sh
printenv
test.pl | & tee STDOUT-MARY
test.pl
!/usr/bin/perl
system "ssh -vvv <serverIP> 'cat vmstat.log' >> vmstat.mary < /dev/null\n";
以下是我也尝试过的事情(来自 SO 等讨论的建议):
- 将 DISPLAY 添加到
Acceptenv
列表中/etc/ssh/sshd_config
/etc/pam.d/login
从和sshd
文件中删除 MOTD- 消除
landscape-client
我完全不知道为什么会发生这种情况,也不知道该如何解决。由于这个问题,我的实验室实验比预期运行的时间长了很多。任何帮助我都会非常感激。如果您需要更多信息来诊断问题,我很乐意提供。
谢谢。
答案1
尝试使用ssh -Y
ssh 手册页
-Y Enables trusted X11 forwarding. Trusted X11 forwardings are not subjected to the X11 SECURITY extension controls.