У меня есть шлюз для 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 включена по умолчанию, независимо от того, какой протокол вы используете.