중첩된 SSH에서 "경고: 신뢰할 수 없는 X11 전달 설정이 실패했습니다."

중첩된 SSH에서 "경고: 신뢰할 수 없는 X11 전달 설정이 실패했습니다."

형편없는 월드 와이드 웹에서 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아니요, 신뢰할 수 있는 X11 전달을 위해 이미 사용된 옵션 대신 SSH에서 덜 안전한 옵션을 사용하고 싶지 않습니다 -X.

답변1

X11 서버에 대한 유일한 연결이신뢰할 수 없는, 더 이상 전달할 수 없습니다.

신뢰할 수 없는 X11 전달이 작동하는 방식은 SSH 클라이언트가 로컬 디스플레이에 연결 xauth generate $DISPLAY . untrusted하고신뢰할 수 없는열쇠/쿠키.

그러나 이를 수행하려면 xauth명령을 사용하려면 SECURITY확장이 디스플레이에 나타나야 하며 대부분의 확장과 마찬가지로 xauth클라이언트가 신뢰할 수 없는 쿠키를 사용하여 인증할 때 확장이 숨겨지거나 비활성화됩니다.

다음을 통해 쉽게 확인할 수 있습니다.

$ 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

명시적인 ForwardX11Trusted=no데비안에서는 옵션 -X-Y옵션이 동일하므로 다음을 얻게 됩니다.신뢰할 수 있는어떤 것을 사용하든 기본적으로 X11 전달이 발생합니다.

관련 정보