Como abrir um programa python remoto do terminal por ssh?

2

Eu digito ssh -X [email protected] e solicita uma senha, eu digito e faço o login.

[email protected]:~$  program.py

então nada acontece, quando deveria aparecer. Por que isso está acontecendo e como posso resolvê-lo?

    
por Nitin Venkatesh 18.12.2010 / 18:22

6 respostas

3

O problema é que a conexão SSH não está encaminhando comandos X11 pela conexão.

Se a máquina que você está usando para conectar estiver executando o Linux (ou outro SO com o X), simplesmente passe o -X param ao invocar o SSH.

Se você estiver se conectando ao Microsoft Windows, precisará de um programa que possa converter os comandos do X11 em comandos da API do Windows. Tente olhar para XMing ou cygwin .

    
por Nathan Osman 18.12.2010 / 20:40
3

Você também pode precisar adicionar / descomentar a seguinte linha do seu /etc/ssh/sshd_config :

X11Forwarding yes

O sinalizador -X é inútil sem isso.

    
por shroff 19.12.2010 / 12:53
2

Você provavelmente precisará ativar o encaminhamento do X no arquivo de configuração do seu servidor SSH, /etc/ssh/sshd_config :

X11Forwarding yes

Se você não tem acesso a este arquivo, eu tenho medo que você tenha que perguntar ao seu administrador de sistema para ativá-lo.

    
por Olivier Lalonde 18.12.2010 / 22:53
0

Parece que sua variável DISPLAY está configurada em algum lugar. Quando eu SSH na minha máquina do meu telefone (com o encaminhamento de X) e execute o seguinte:

oli@bert:~$ echo $DISPLAY
localhost:10.0

Embora não seja uma garantia, o encaminhamento do X tende a usar números de exibição altos.

Se o seu ~/.bashrc estiver definido para substituir a exibição, você provavelmente verá algo mais parecido com :0 .

Você pode adivinhar e sobrepor a variável DISPLAY para localhost:10.0 depois de se conectar:

export DISPLAY=localhost:10.0

De encontrar onde você está definindo a exibição em seus arquivos bash locais.

Devo acrescentar que é possível desativar o encaminhamento do X nas configurações do SSHd ( /etc/ssh/sshd_config ), então você pode querer verificar isso também.

    
por Oli 18.12.2010 / 19:25
0

É exatamente como você faz no seu computador,% ssh -X remotehost python remotepythonprogram.py

Para ver o código do programa,% ssh -X remotehost less remotepythonprogram.py

    
por karthick87 18.12.2010 / 18:40
0

A solução de Oliver é o caminho a percorrer se você quiser encaminhar X, mas entenda que isso pode ser intensivo em largura de banda.

Uma solução alternativa é usar um editor de linha de comando como vim ou nano . Pessoalmente, eu iria com vim . Ele tem uma curva de aprendizado mais acentuada, mas uma vez que você supera isso, você não vai querer voltar a nada: =) Você pode começar a aprender executando vimtutor para um tutorial sobre o básico.

    
por shroff 19.12.2010 / 12:54