CentOS 6.6 클러스터에 나 자신으로 로그인하면(를 사용하여 ssh -AY user@ipaddress
) X11 전달이 제대로 작동합니다. 예를 들어 사용자를 전환 sudo su user2
하고 실행하려고 하면 xterm
다음 오류가 발생합니다.
인증 오류로 인해 X11 연결이 거부되었습니다.
xterm Xt 오류: 디스플레이를 열 수 없습니다: localhost:11.0
이 경우 X11 전달이 작동하도록 하려면 어떻게 해야 합니까?
답변1
사용하면 sudo su
모든 승인이 상실될 수 있습니다.
SSH 키 인증을 설정한 후 ssh -AY user2@localhost
(또는 ssh -AY user2@localhost xterm
)을 사용하세요.
답변2
이 문제를 겪은 사람은 당신이 처음이 아닙니다. 그 이유는 매우 간단합니다. X 서버가 인증 토큰을 요구하도록 (상당히 합리적으로) 설정되어 있고 두 번째 사용자는 해당 토큰에 액세스할 수 없습니다. 여러 가지 솔루션이 있습니다:
다른 사용자로 X11 응용 프로그램을 실행하지 마십시오. 자신으로서 xterm을 시작하여 다른 사용자로 쉘을 실행하십시오.
xterm -e sudo -s user2
분명히 이 접근 방식은 다른 사용자로 GUI 응용 프로그램을 실행해야 하는 경우에는 작동하지 않지만 더 복잡해지기 전에 항상 고려해 볼 가치가 있습니다.
user2가 인증 없이 X 서버에 액세스할 수 있도록 허용합니다. 자신으로서 xhost를 사용하여 이 사용자를 추가하십시오:
xhost +SI:localuser:user2
- 대신 설치
sux
하고 사용하십시오su
. 이는 단순한 쉘 래퍼이지만 요즘에는 다음 솔루션과 같은 솔루션을 고려하면 대부분 제외됩니다. 구성
su
하고sudo
사용하세요pam_xauth
. 이것은 (Debian의) 표준 모듈입니다libpam-modules
. 필요한 것은 라인을 추가하는 것뿐입니다session optional pam_xauth.so
에
/etc/pam.d/su
그리고 에/etc/pam.d/sudo
. 다른 옵션도 있지만(man 페이지 참조) 꼭 필요할 것 같지는 않습니다.