X forwarding na een su of sudo
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.