«Предупреждение: не удалось настроить ненадежную переадресацию X11» на вложенном ssh

«Предупреждение: не удалось настроить ненадежную переадресацию X11» на вложенном ssh

У меня есть шлюз для ssh из плохой всемирной паутины. Никаких проблем, я получаю:

remote ~$ ssh -X ingo@gateway
Debian GNU/Linux 10 (buster)
0:ingo@gateway ~$

Теперь я управляю другими своими хостами, например файловым сервером:

0:ingo@gateway ~$ ssh -X ingo@fileserver
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Debian GNU/Linux 10 (buster)
0:ingo@fileserver~$

Я понял это предупреждение.

Но если я подключаюсь по ssh с моего хоста управления в локальной сети напрямую к файловому серверу, то это работает без предупреждения. Я проверил это с другими входами. Я получаю предупреждение только при ssh из ssh.

Почему я получаю
Предупреждение: не удалось настроить ненадежную переадресацию X11: данные ключа xauth не сгенерированы
только при вложенных входах по ssh?

Как можно избежать этого предупреждения и успешно использовать более безопасную ненадежную переадресацию X11?

И нет, я не хочу использовать менее безопасную -Yопцию ssh для доверенной переадресации X11 вместо используемой -Xопции.

решение1

Когда ваше единственное подключение к серверу X11 —ненадежный, вы не сможете переслать его дальше.

Недоверенная переадресация X11 работает с помощью клиента ssh, подключающегося к локальному дисплею, и использующего xauth generate $DISPLAY . untrustedкоманду для генерацииненадежныйключ/cookie.

Но для этого xauthкоманде необходимо, SECURITYчтобы расширение присутствовало на дисплее, которое, как и большинство расширений, скрыто и/или отключено, когда клиент, например, xauthбыл аутентифицирован с помощью ненадежного cookie-файла.

Вы можете легко это проверить с помощью:

$ touch /tmp/junk1 /tmp/junk2
$ chmod 600 /tmp/junk*
$ xauth -f /tmp/junk1 generate :0 . untrusted
$ XAUTHORITY=/tmp/junk1 oclock
   # get a square oclock because the Shape extension is disabled
$ XAUTHORITY=/tmp/junk1 xdpyinfo | grep -A2 extensions
number of extensions:    2
    BIG-REQUESTS
    XC-MISC
   # vs 28 or so on a trusted display
$ XAUTHORITY=/tmp/junk1 xauth -f /tmp/junk2 generate :0 . untrusted
xauth: (argv):1:  couldn't query Security extension on display ":0"

Последний шаг вызовет предупреждение, которое вы получите в ssh.

Поэтому, по крайней мере, первая пересылка X11 должна быть доверенной, иначе она не будет работать.


В качестве альтернативы следует «прыгнуть» через промежуточный хост, который выполнит одну пересылку X11:

ssh -X -o ForwardX11Trusted=no -J ingo@gateway ingo@fileserver

Обратите внимание на explicit ForwardX11Trusted=no, так как в Debian параметры -Xи -Yэквивалентны, и вы получитедоверенныйПереадресация X11 включена по умолчанию, независимо от того, какой протокол вы используете.

Связанный контент