Eu encontrei o problema. Definir o DISPLAY manualmente para localhost: 0 não está funcionando, porque o XServer não escuta as conexões TCP (configuração padrão do Ubuntu 10.04).
No entanto, definindo
export DISPLAY=:0
faz o truque.
Quando estou conectado a outro host (por exemplo, via ssh), como me conecto ao XServer dessa máquina (o mesmo usuário está logado e está executando uma área de trabalho (gnome))?
Você pode perguntar como eu gostaria de fazer isso: existem comandos que não abrem um X-Window, por exemplo xinput, xhost, etc .. e há situações em que você deseja executá-las remotamente.
Você precisará definir sua variável de ambiente de exibição na sessão ssh. Provavelmente, o servidor X está sendo executado na tela 0. Portanto, na sessão ssh (assumindo um shell parecido com o Bourne), digite:
export DISPLAY=localhost:0
xclock
Você deve ver o relógio no visor do servidor X remoto.
Nota: isso deve funcionar "apenas" se sua sessão ssh estiver conectada como o mesmo usuário que iniciou a sessão da área de trabalho no servidor X. Se você estiver logado como um usuário diferente, você pode precisa obter o cookie xauth da conta de usuário da sessão da área de trabalho.
Se você estiver usando a linha de comando ssh e supondo que esteja usando o Linux:
ssh -X host
Em seguida, tente algo como:
xclock
E você deve ver um relógio, mas ele está sendo executado no computador remoto.
Nota: Isso só funcionará se o x forwarding estiver ativado no arquivo de configuração sshd.
Claro que esta é apenas uma visão geral rápida - você pode postar mais informações, como o sistema operacional que você tem e qual cliente SSH está usando?