SSH XForwarding 失败 - xauth 显示名称错误

Ruc*_*t88 9 ssh xforwarding xauth

我正在尝试通过 ssh 设置 XForwarding,但它失败了。无论我对 ssh 使用参数 -X 还是 -Y,都会发生相同的结果。我得到的错误。

a@ASUS-N53SM:~$ ssh -X -p 6623 pinker@192.168.0.200
pinker@192.168.0.200's password: 
Last login: Sun Feb  2 18:42:08 2014 from 192.168.0.201
/usr/bin/xauth: (stdin):1:  bad display name "pinker-server:10.0" in "remove" command
/usr/bin/xauth: (stdin):2:  bad display name "pinker-server:10.0" in "add" command
xdpyinfo:  unable to open display "pinker-server:10.0".
Run Code Online (Sandbox Code Playgroud)

在客户端文件 ~/.ssh/config

ForwardX11 yes
Run Code Online (Sandbox Code Playgroud)

在客户端文件 /etc/ssh/ssh_config 中(注释已删除)。

Host *
ForwardX11 yes
ForwardX11Trusted yes
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes 
GSSAPIDelegateCredentials no
Run Code Online (Sandbox Code Playgroud)

在服务器文件 /etc/ssh/sshd_config 中(注释已删除)。

Port 6623
Port 6624
Port 6625
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
X11UseLocalhost no
AllowTcpForwarding yes
Run Code Online (Sandbox Code Playgroud)

我发现了这个类似的问题,但没有一个答案有效。

更新:

在服务器上,我添加到文件 /etc/hosts.conf 中。

127.0.0.1       pinker-server
Run Code Online (Sandbox Code Playgroud)

在服务器上,我安装了 package xbase-clients。在 ssh 连接echo $DISPLAY输出上:0.0

现在我收到一个新错误。

X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
xdpyinfo:  unable to open display "pinker-server:10.0".
Run Code Online (Sandbox Code Playgroud)

Sep*_*ero 7

在远程机器上,编辑文件 /etc/ssh/sshd_config。更改X11UseLocalhost为yes。

来源http://www.pclinuxos.com/forum/index.php?topic=109487.0


小智 7

当远程机器不知道自己的主机名,或者与 127.0.1.1 相关联的主机名不正确时,就会发生此错误(注意:不是 127.0.0.1,它应该始终解析为 localhost)。

要更正它,请确保 /etc/hosts 中 127.0.1.1 的条目与机器的 FQDN 和短主机名匹配。


slm*_*slm 5

每当我遇到 SSH 问题时,我几乎都会立即重新运行该命令并启用更详细的消息传递。我喜欢使用这种技术来收集我正在运行的服务器上的日志文件ssh。如果您需要获取更多详细信息,只需添加更多-v开关(最多 3 个)。

$ ssh -v user@remoteserver |& tee /path/to/sshv1.log
-or-
$ ssh -vv user@remoteserver |& tee /path/to/sshv2.log
Run Code Online (Sandbox Code Playgroud)

由于身份验证错误,X11 连接被拒绝。

此消息几乎总是表明您的.Xauthority文件存在权限问题。您可以将现有的暂时移开,也可以尝试修复其所有权和权限。

$ chown user:group ~/.Xauthority
$ chmod 0600 ~/.Xauthority
Run Code Online (Sandbox Code Playgroud)

如果这些操作中的任何一个都没有解决问题,那么您可以尝试诊断xauth魔术饼干本身。

作为运行 ssh 的本地用户

$ xauth list
localhost/unix:13 MIT-MAGIC-COOKIE-1 c77169a6fa8139ea36f538e1c72e1b98
Run Code Online (Sandbox Code Playgroud)

作为服务器上的粉红色

$ xauth
Using authority file /home/pinker/.Xauthority
Run Code Online (Sandbox Code Playgroud)

然后手动添加密钥:

xauth> add localhost/unix:13 MIT-MAGIC-COOKIE-1 c77169a6fa8139ea36f538e1c72e1b98
Run Code Online (Sandbox Code Playgroud)

参考


sam*_*iam 2

我从http://openvz.org/X_inside_VE#X_forwarding获得了大部分信息

在 SSH 中验证 X

通过 SSH 登录后,通过查找 DISPLAY 环境变量来验证 X 转发是否正常工作:

echo $DISPLAY

答案应该是这样的localhost:8.0

确保 sshd 允许 X 转发

编辑/etc/ssh/sshd_config并确保它有X11Forwarding yes

如果没有,请编辑或添加 X11Fordwarding 行,然后重新启动 sshd:

service sshd restart/etc/init.d/sshd restart使用的是 CentOS 5)

然后退出并再次登录

确保 xauth 已设置

确保 xauth 软件包已安装。在 Debian 中,这是xbase-clients软件包的一部分。

还是不行

在我回答的问题中,错误信息是这样的:/usr/bin/xauth: (stdin):1: bad display name "pinker-server:10.0" in "remove" command

下面建议的一种可能的解决方案是确保相关行sshd_config如下所示:

X11UseLocalhost yes
Run Code Online (Sandbox Code Playgroud)

  • 将主机名添加到 127.0.0.1 通常不是一个好主意。 (3认同)