[wiki:MIT-MAGIC-COOKIE-1] is much more secure authentication protocol than HostBasedAuthentication: it uses private tokens to authenicate clients trying to access X server: token is bound to the X server and vaild only during one session.

Authentication tokens are generated at server startup and stored at
`.Xauthority` file in user home directory. Any X application trying to
access the display reads authentication token corresponding to
the display from this file (or from the file variable XAUTHORITY
points to if this variable exists) and passes this token to the
server.

`xauth` program is designed to manipulate authentication tokens. Two
most interesting for us commands of xauth are

||`xauth nextract`||extracts the authentication token from `.Xauthority` file.||
||`xauth nmerge`||adds the authentication token, extracted by `nextract`, to the `.Xauthority` file||

('n' here means 'numeric format' as opposed to the 'binary': numeric format contains only printable symbols).

You also can list installed to the `.Xauthority` authentication tokens by using `xauth nlist`.

Example configuration is the same as in HostBasedAuthentication: `host1` runs `x2x` and wants to control display on `host2`.

On the host2:
{{{
host2% echo $DISPLAY
:0.0
host2% xauth nextract - :0.0
<here goes the authentication token>
host2%
}}}

On the host1:
{{{
host1% xauth nmerge -
<here the paste of the authentication token above>
host1% x2x -to host2:0
}}}

This authentication method is a bit more complicated than host-based,
but much more secure, and you should prefer it unless you know exactly
what are you doing.
