상용 소프트웨어 설치 프로그램 중에는 GUI 마법사만 제공하는 것이 있다. 서버에 데스크톱 환경을 올리지 않고도 X11 포워딩으로 화면만 작업용 PC 로 끌어오면 설치할 수 있다. 자주 보는 오류는 다음과 같다.
PuTTY X11 proxy: unable to connect to forwarded X server: Network error: Connection refused
PuTTY 에서 X11 포워딩을 켰지만 PC 쪽에서 X 서버가 돌고 있지 않다는 뜻이다. 서버 설정 문제가 아니다.
sudo grep -E '^X11Forwarding|^X11UseLocalhost' /etc/ssh/sshd_config
X11Forwarding yes
바꿨으면 검사하고 다시 읽힌다.
sudo sshd -t
sudo systemctl restart sshd
xauth 가 없으면 포워딩이 조용히 동작하지 않는다. 최소 설치 서버에는 빠져 있는 경우가 많다.
sudo dnf install -y xorg-x11-xauth
# GUI 프로그램이 요구하는 기본 라이브러리
sudo dnf install -y libXtst libXrender libXi
ssh -X user@192.168.0.10
# 신뢰 모드. -X 로 안 되는 오래된 프로그램에 쓴다
ssh -Y user@192.168.0.10
접속한 뒤 확인한다.
echo $DISPLAY # localhost:10.0 처럼 나와야 한다
xdpyinfo | head -3
xclock
$DISPLAY 가 비어 있으면 포워딩이 성립하지 않은 것이다. ssh -vv 로 Requesting X11 forwarding 이후 메시지를 본다.
PuTTY 만으로는 안 된다. PC 에 X 서버를 따로 띄워야 한다.
0 이다.Connection → SSH → X11 에서 Enable X11 forwarding 을 켠다.X display location 에 localhost:0 을 넣는다.VcXsrv 를 -ac 없이 띄우면 접근 제어에 걸려 같은 오류가 난다. 보안상 -ac(모든 호스트 허용)는 피하고 X 서버의 접근 목록에 대상 서버를 넣는 편이 낫다.
X11 포워딩은 화면 갱신이 느리고 방화벽·제약이 많은 환경에서는 쓰기 어렵다. 설치 프로그램이 다음을 지원하는지 먼저 확인한다.
-console, -i console, -mode text 등).이 방법이 가능하면 재현성과 감사 측면에서도 낫다.
원격 화면 자체가 필요하면 X11 포워딩 대신 xrdp 나 TigerVNC 를 쓴다.
설치 프로그램이 엉뚱한 DISPLAY 를 물고 있으면 해제한다.
unset DISPLAY
env | grep -i display
unset 은 현재 셸에만 적용된다. 영구히 없애려면 ~/.bashrc, ~/.bash_profile, /etc/profile, /etc/profile.d/*.sh, /etc/environment 중 그 값을 설정한 곳을 찾아 지운다.
grep -rn 'DISPLAY' ~/.bashrc ~/.bash_profile /etc/profile /etc/profile.d/ 2>/dev/null