ssh, -X 또는 -Y를 사용하는 것이 더 낫습니까?

ssh, -X 또는 -Y를 사용하는 것이 더 낫습니까?

간단한 질문: 안전을 위해 사용하는 것이 더 안전한 ssh -X가요 ssh -Y? 내가 아는 한 ssh -Y는 X11Trusted이므로 더 이상 아무것도 제어하지 않으므로 보안상의 이유로 -X를 사용하는 것이 좋습니다. 어떻게 생각하나요? -X 옵션을 사용하면 대상 컴퓨터에서 ssh를 실행할 때 이 메시지가 표시되기 때문에 일반적으로 -Y를 사용합니다.

Warning: untrusted X11 forwarding setup failed: xauth key data not generated

LAN을 통해 기계를 연결합니다.

답변1

나는 그것에 대해 스스로 대답한다. 어쩌면 이 ssh -X옵션이 더 안전할 수도 있습니다. ssh(비밀번호, kerberos 또는 공개 키) 인증과 x11(xauth, xhost) 인증이라는 두 가지 유형의 인증이 필요하기 때문입니다. 소위 "신뢰할 수 있는" 을 사용하면 ssh -Y호스트를 신뢰하고 X11 인증을 우회하므로 xhost 명령을 사용할 필요가 없습니다. 제 생각에는 더 안전합니다 ssh -X. 단 한 가지 문제가 있습니다. 최신 버전의 ssh를 사용하면 제가 했던 문제가 발생하는 것 같습니다.

\ssh -vvv  -X myhost

이 두 가지 오류가 발생했습니다.

Warning: untrusted X11 forwarding setup failed: xauth key data not generated

debug2: client_x11_get_proto: xauth command: /usr/bin/xauth -f /tmp/ssh-KYHfkmGN25fa/xauthfile generate :0.0 MIT-MAGIC-COOKIE-1 untrusted timeout 1260 2>/dev/null

xauth 명령을 직접 실행하려고 하면 이 오류가 발생합니다.

/usr/bin/xauth -f /tmp/ssh-KYHfkmGN25fa/xauthfile generate :0.0 MIT-MAGIC-COOKIE-1 untrusted timeout 1260 
/usr/bin/xauth:  error in locking authority file /tmp/ssh-KYHfkmGN25fa/xauthfile

해결 방법: ssh_config를 편집하고 다음 줄을 활성화합니다.

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes

ssh -X는 이제 잘 작동하지만 액세스를 비활성화하려고 하면 문제가 하나뿐입니다.

xhost -

그리고 ssh -X를 실행하면 여전히 호스트가 허용됩니다! 그래서 ForwardX11Trusted yes가 ForwardX11 yes보다 우선한다고 생각합니다.

SSH_config 편집

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted no

ssh -X가 작동하지 않습니다. 따라서 질문은 여전히 ​​열려 있습니다.

답변2

SSH 옵션은 -XX11 전달을 활성화하고 -Y신뢰할 수 있는 X11 전달을 활성화합니다. 후자는 SECURITY확장된 보안 통제의 대상이 되지 않습니다.

이상적으로는 이를 사용하여 -X보안을 강화할 수 있습니다. 그러나 OpenSSH의 Debian 버전을 사용하는 경우 -X매뉴얼 페이지에 다음 옵션이 있습니다.

Debian 관련: 기본적으로 X11 전달은 X11 SECURITY 확장에 의해 제한되지 않습니다. 현재 이 모드에서는 너무 많은 프로그램이 충돌하기 때문입니다. 업스트림 동작을 복원하려면 ForwardX11Trusted 옵션을 "no"로 설정하십시오. 이는 향후 클라이언트 개선에 따라 변경될 수 있습니다.

따라서 신뢰할 수 있는 전달을 비활성화하는 것은 실용적인 옵션이 아니며 프로그램을 실제로 실행하려면 신뢰할 수 있는 전달을 사용해야 합니다. 데비안에서는 모든 시스템에서 이 작업을 -X수행 하세요.-Y

관련 정보