X forwarding na een su of sudo

By | 11 maart 2013

X forwarding

Om op een remote server een X programma te kunnen draaien heb je uiteraard lokaal een X-server nodig. Met ssh -X {username}@server.example.com kan een X forwarding sessie worden gestart. Er kan dan op een remote server een grafisch programma worden gestart wat lokaal getoond wordt. Dat kan allerlei voordelen hebben oa. netwerktechnisch. De X-sessie wordt immers getunneld over de SSH poort.

Echter, sommige programma’s moeten als root worden gestart en als niet als root kan worden ingelogd moet dat na een reguliere inlog met su of sudo worden bereikt. Als dan het grafische programma wordt gestart verschijnt de foutmelding:

X11 connection rejected because of wrong authentication.

xauth

De oplossing ligt er in om het MIT cookie (sessie cookie voor X) te achterhalen en dat vervolgens na de su of sudo aan xauth toe te voegen. Dat kan na de inlog als reguliere user het cookie te achterhalen met:

xauth list

En er komt een antwoord wat lijkt op:

hostname:10 mit-magic-cookie-1 4d22408a71a55b41ccd1657d377923ae

Copyeer deze regel en ga via su of sudo naar root en geef vervolgens:

xauth add hostname:10 MIT-MAGIC-COOKIE-1 4d22408a71a55b41ccd1657d377923ae

Vervolgens kunnen programa’s die een grafische omgeving (X server) nodig hebben worden gestart.