X11 forwarding stops working after a while

Solution 1:

When I had this problem I discovered that I needed to add these lines to ~/.ssh/config:

Host *
    ForwardX11Trusted yes

You should modify the * to some sort of host pattern so it's not enabled for every ssh connection.

You may want to change the ForwardX11Timeout option instead. From man ssh_config:

 ForwardX11Timeout
    Specify a timeout for untrusted X11 forwarding using the format
    described in the TIME FORMATS section of sshd_config(5).  X11
    connections received by ssh(1) after this time will be refused.  The
    default is to disable untrusted X11 forwarding after twenty minutes has
    elapsed.

 ForwardX11Trusted
    If this option is set to “yes”, remote X11 clients will have full
    access to the original X11 display.

    If this option is set to “no”, remote X11 clients will be considered
    untrusted and prevented from stealing or tampering with data belonging
    to trusted X11 clients.  Furthermore, the xauth(1) token used for the
    session will be set to expire after 20 minutes.  Remote clients will
    be refused access after this time.