A área de transferência é fornecido pelo servidor X . Não importa se o servidor está decapitado ou não, o que importa é que sua sessão gráfica local esteja disponível para programas em execução na máquina remota. Graças ao design transparente de rede do X, isso é possível.
Presumo que você esteja se conectando ao servidor remoto com SSH de uma máquina executando o Linux. Verifique se o encaminhamento do X11 está ativado na configuração do cliente e na configuração do servidor. Na configuração do cliente, você precisa ter a linha ForwardX11 yesem ~/.ssh/configtê-lo ligado por padrão, ou passar a opção -Xpara o sshcomando apenas para essa sessão. Na configuração do servidor, você precisa ter a linha X11Forwarding yesem /etc/ssh/sshd_config(ele está presente por padrão no Ubuntu).
Para verificar se o encaminhamento X11 é ativado, olhar para o valor da DISPLAYvariável de ambiente: echo $DISPLAY. Você deve ver um valor como localhost:10(os aplicativos em execução na máquina remota são instruídos a se conectar a um monitor em execução na mesma máquina, mas essa conexão é de fato encaminhada pelo SSH para o monitor do lado do cliente). Observe que, se DISPLAYnão estiver definido, não adianta defini-lo manualmente: a variável de ambiente sempre será definida corretamente se o encaminhamento estiver em vigor. Se você precisa para diagnosticar problemas de conexão SSH, passe a opção -vvvpara sshobter um traço detalhada do que está acontecendo.
Se você estiver se conectando por outros meios, poderá ou não conseguir obter o encaminhamento do X11. Se o seu cliente estiver executando o Windows, o PuTTY suporta o encaminhamento X11; você precisará executar um servidor X na máquina Windows, como o Xming .
+1 resposta brilhante, mas como eu mencionei, este servidor está sendo executado sem x, então a resposta Nykakins é mais relevante.
Anake
@ Cobra, eu tenho medo que você tenha interpretado mal a minha resposta. Um monitor remoto não envolve nenhum servidor X em execução na máquina remota. Você precisa ter o xclipprograma instalado e as bibliotecas de suporte, mas isso não envolve a instalação de um servidor X.
Gilles 'SO- stop be evil'
2
Apenas imaginando ... essa abordagem é válida ao conectar-se de um cliente OSX a um servidor Ubuntu sem cabeça?
Ken
3
Isso não funciona para mim. Eu estou indo do mac -> servidor linux. X11Forwarding yesestá no sshd_config no servidor e eu passei -Xquando fiz o ssh para o servidor. Error: Can't open display: (null)oncat ~/.ssh/id_rsa.pub | xclip -selection clipboard
chovy
1
ok eu imaginei que iria funcionar, uma vez que pbcopyjá funciona no meu mac localmente. Como inicio um servidor x em um mac e o que devo definir $DISPLAY?
chovy
4
O Bash em si não possui uma área de transferência. É um recurso X. xclipté apenas uma interface de linha de comando e, como você vê, requer display. Uma maneira de contornar é usar apenas um arquivo temporário:
xclip
programa instalado e as bibliotecas de suporte, mas isso não envolve a instalação de um servidor X.X11Forwarding yes
está no sshd_config no servidor e eu passei-X
quando fiz o ssh para o servidor.Error: Can't open display: (null)
oncat ~/.ssh/id_rsa.pub | xclip -selection clipboard
pbcopy
já funciona no meu mac localmente. Como inicio um servidor x em um mac e o que devo definir$DISPLAY
?O Bash em si não possui uma área de transferência. É um recurso X.
xclipt
é apenas uma interface de linha de comando e, como você vê, requerdisplay
. Uma maneira de contornar é usar apenas um arquivo temporário:fonte