我正在尝试从我的(Debian)桌面计算机使用 ssh 进入 Debian 服务器
ssh -X remote-ip
登录到远程主机后,我得到:
/usr/bin/X11/xauth: creating new authority file /root/.Xauthority
/usr/bin/X11/xauth: (stdin):1: bad display name "unix:10.0" in "remove" command
/usr/bin/X11/xauth: (stdin):2: bad display name "unix:10.0" in "add" command
而且 X Forwarding 不起作用。从我的桌面,我可以通过 ssh -X 进入其他 Debian 服务器,它工作正常。我在 Google 上发现了很多讨论类似问题的帖子,但它们似乎都没有解决方案,而且那里建议的简单操作(如导出 DISPLAY 或设置 xhost +)似乎没有什么区别。
答案1
尝试-Y
代替-X
ssh -Y remote-ip
从 ssh 手册页中,这“启用受信任的 X11 转发。受信任的 X11 转发不受 X11 SECURITY 扩展控制的约束。”
如果有效,您可以添加到 ~/.ssh/config:
Host remote-ip
ForwardX11Trusted yes
并且您不需要明确添加-Y
。
要弄清楚为什么这台远程机器的行为与其他机器不同,请查看文件sshd_config
- 在 RedHat 上位于 /etc/ssh/sshd_config 中。我不知道它是否位于 Debian 上的其他位置。
有关相关问题的更多讨论另一个超级用户问题。
答案2
将您要连接的主机名添加到您的 dns 或 hosts 文件。使用ssh -X root@hostname
而不是 ip 重新连接。- 如有必要,请删除任何有问题的密钥。
答案3
我无法解决这个问题,即使确保了工作机器和非工作机器上的配置文件相同。为了解决这个问题,我安装了 x11vnc,并使用 vnc 协议而不是 X11。