排查SSH X11 Forwarding无效的步骤
从 https://lonesysadmin.net/2018/07/06/fixing-x11-forwarding-ssh-sudo/ 中看到的,觉得不错,记录一下。
- 检查 SSH client 本身是否支持 X11 Forwarding
检查远程服务器上是否安装了 xauth.
xauth 是允许 X11 Forwarding 必须的,因为远程的Xclient需要用它来跟本地的Xserver进行认证。
- 本地的SSH Client配置参数是否正确。比如,检查一下
~/.ssh/config文件中是否有ForwardAgent yes和ForwardX11 yes - 本机上是否安装并启动了Xserver
- 检查
$DISPLAY有没有正确设置,检查本地Xserver的权限配置是否允许远程主机连接 - 远程主机上的
sshd_config中是否配置了X11Forwarding yes和AllowAgentForwarding yes - 你的$HOME目录是否可写. 因为XClient连接Xserver时需要创建
~/.Xauthority文件 ~/.ssh目录的权限是否正确,目录本身的权限应该是700, 而目录中文件的属性应该是600是否禁用了 IPv6
在
sshd_config中添加AddressFamily inet可以强制 OpenSSH 只使用 IPv4若运行
sudo或su命令提示X11 connection rejected because of wrong authentication, 那么可能是root没有配置好 xauth 的权限。解决方法是直接拷贝当前用户的
~${USER}/.Xauthority到~root/下就行了- 若还不行,则查看ssh连接过程中的详细信息
ssh -v -X user@host,ssh -vv -X user@host,ssh -vvv -X user@host
