Como executo um aplicativo GUI via SSH?

10

Estou acostumado a trabalhar no Unix / Linux e recentemente me mudei para o Mac. Em costumava ser capaz de fazer isso:

derick@linux1:~$ ssh -X linux2
derick@linux2's password:
derick@linux2:~$ xclock

Instalei o X11 do maxports e posso fazer o mesmo no meu mac. Se eu tentar o inverso ssh no meu mac a partir do linux, só posso executar certos aplicativos:

  • /usr/X11/bin/xclock funciona bem
  • Algo como /Applications/Preview.app/Contents/MacOS/Previewabre a GUI no mac.

    Parece que isso não é possível em um mac? Caso contrário, como executo um aplicativo remotamente (em um mac) com uma exibição local (linux)? Preciso de algum aplicativo de terceiros?

Atualização: Para ser mais preciso: tenho sinergia e uso o Mac para codificação. No meu PC linux, eu gostaria de ver a tela de outro aplicativo (GUI) no Mac. Assim, aplicativos de 'compartilhamento de tela ao vivo' como o VNC não funcionarão.

Por exemplo, eu estou trabalhando no meu mac no aplicativo A (digamos Word) e quero ver a saída do Excel (executando no mac) no meu PC linux ao meu lado. (Simulando uma tela dupla via rede). Funcionou muito bem no linux, esperando uma solução para o mac.

Derick Schoonbee
fonte
Se não houver uma solução via SSH, eu também estaria interessado nisso. O problema é que eu quero executar a exibição de um aplicativo local em um PC através da rede ao meu lado, como costumava fazer com o linux.
Derick Schoonbee
Posso perguntar por que você deseja evitar o VNC? Problemas de atraso na rede?
Nicholas Smith
Atualmente, estou trabalhando no Mac, portanto a tela está "ocupada". Quero executar outro aplicativo no mac com a saída exibida no PC ao meu lado. Como eu fiz no linux. Na esperança de ver uma solução no mac.
Derick Schoonbee
Pela maneira que você não tem que instalar o X11 por MacPorts ... X11 vem com o OS X.
Yuji
Ah, ah, então sua objeção ao VNC não se deve a nenhum problema do VNC, mas por causa das restrições de tela?
Nicholas Smith

Respostas:

9

Portanto, se não me engano, o problema que você tem atualmente com o VNC é que ele está compartilhando a tela do usuário atual do Mac com aplicativos abertos que você não deseja ver no seu outro computador? O Lion introduz a capacidade de rastrear usuários de compartilhamento registrados em segundo plano . Citando o texto do link:

  • Ative o compartilhamento de tela e defina uma senha do VNC.
  • Anote o endereço IP do seu computador.
  • Inicie um cliente VNC em outra máquina.
  • Conecte-se ao endereço IP do seu computador junto com a senha que você definiu anteriormente.
  • Você verá a tela de login do Mac OS X que aparece quando você inicia o computador. Se você fizer login no usuário ativo no momento, estará controlando a tela do computador. Se você selecionar um usuário diferente, será conectado à área de trabalho desse usuário em segundo plano. Não afetará o que é visto na tela física do computador.

Você provavelmente precisará criar outro usuário para compartilhar.

cftarnas
fonte
Ótimo, isso parece ser o que eu quero! Agora tenho outra motivação para atualizar para o Lion . Testarei em breve e provavelmente aceito isso como resposta. Obrigado!
Derick Schoonbee
Porra, acabei de atualizar e recebo a tela de login via VNC. Mas não quer levar meu teclado acariciado. Assim, eu não consigo entrar :(
Derick Schoonbee
Isso é muito estranho - qual cliente VNC você está usando?
cftarnas 6/09/11
17

O aplicativo nativo do Mac OS X não usa o protocolo X para a renderização, mas o protocolo específico do Mac. Portanto, você não pode usar o encaminhamento de protocolo ssh X como faria com uma estação de trabalho Linux.

Como você descobriu, o inverso não é verdadeiro, você pode instalar um servidor X no Mac OS X e fazer com que o programa Linux apareça no seu Mac.

O que você pode fazer é usar o recurso de compartilhamento de área de trabalho do Mac ou instalar um servidor VNC. Em seguida, na sua caixa Linux, você se conecta ao seu Mac através do VNC em vez do ssh.

Sylvain Defresne
fonte
Obrigado pela informação. O que eu quero saber se há alguma funcionalidade semelhante que eu possa usar no Mac. Por exemplo, posso usar o recurso de compartilhamento de área de trabalho do linux1 enquanto estou trabalhando / logado no meu mac?
Derick Schoonbee
Sim, você pode executar um servidor VNC no Linux e conectá-lo do Mac a um cliente VNC (há algum cliente VNC gratuito no Mac e servidor VNC gratuito no Linux).
Sylvain Defresne
Hmm .. O VNC não resolve: estou trabalhando no meu mac no aplicativo A (digamos Word) e quero ver a saída do Excel (executando no mac) no PC linux ao meu lado.
Derick Schoonbee
Como Sylvain explicou, isso não é possível no Mac. A arquitetura subjacente do sistema operacional não permite esse tipo de uso.
Samuel Mikel Bowles
3
Veja minha resposta, mas com o Lion é possível se você usar um usuário diferente no Mac para a sessão VNC.
cftarnas
7

Como Sylvian mencionou, você não pode executar seus aplicativos para Mac e exibi-los no Linux. O melhor que você pode fazer é o VNC. Você verá a tela inteira, não apenas um aplicativo.

Habilite uma senha VNC em Preferências de compartilhamento de tela:

Preferências de compartilhamento de tela

Você pode usar qualquer aplicativo cliente VNC no Linux.

bahamat
fonte
0

Você está um pouco sem sorte, mas o ScreenRecycler vai levá-lo o mais perto possível. Executa o VNC, mas convence o OS X de que a conexão do VNC é na verdade um monitor separado; ele deve permitir que você se aproxime do que precisa. Eu usei, é muito bom, há um teste gratuito e é bem barato. Parei de usá-lo apenas porque estava em uma rede ruim e havia muita latência, a menos que estivesse conectando diretamente as duas em rede.

Nicholas Smith
fonte
0

Tornando-se um pouco criativo, mas você também pode executar um aplicativo java usando o VNC que possui um servidor http ou, no meu caso, usa um loop para procurar um arquivo e criar esse arquivo usando SSH.

Aqui está o meu aplicativo java.

Erik B
fonte