중첩된 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 전달이 이루어집니다.

관련 정보