Como posso emitir um comando na minha máquina local a partir de uma sessão SSH?

4

Exemplo de caso de uso:

  1. Estou trabalhando no meu laptop executando o Mac OS X ( A ) e estou conectado ao meu servidor de desenvolvimento ( B ) via SSH.
  2. Eu tenho um script que gerará uma URL do GitHub para o arquivo / filial que tenho atualmente aberto no meu editor em ( B ).
  3. Gostaria de abrir esse URL em um navegador no meu laptop ( A ).

Outros casos de uso podem incluir:

  • Atualize meu navegador toda vez que salvar um arquivo
  • Reproduza uma música localmente quando eu emitir um comando git
  • Abra um ticket do Jira correspondente ao branch que eu fiz check-out.
por Jordan Eldredge 16.04.2015 / 21:48

2 respostas

2

Você pode usar o túnel reverso do SSH. Funciona assim; faça isso na máquina que você está usando aqui, remote_server é o nome do servidor remoto:

ssh -R 13000:localhost:22 remote_server

E exiba na imagem no seu local machine do remote server :

ssh <USERNAME>@localhost -p 13000 "DISPLAY=:0 ristretto <IMAGE>"

EDITAR : Pode não haver um servidor X instalado na máquina do Mac OS, não o uso, mas a ideia geral permanece a mesma. A vantagem de usar o tunelamento reverso é que sua máquina local não precisa ter um endereço IP público.

    
por 16.04.2015 / 22:35
0

Essa pode não ser a maneira mais elegante de abordar isso, mas, como você está usando o Mac OS X, a única coisa em que consigo pensar se você já está remotamente na outra máquina é emitir um comando SSH de volta para o seu computador. host como este. O grande pré-requisito é que você precisa ter seu servidor SSH instalado e funcionando em seu laptop Mac OS X e garantir que as regras de firewall do seu roteador permitam conexões SSH na porta 22 para que isso funcione.

Então, vamos supor que seu laptop tenha o nome machineA e você queira abrir uma URL como http://google.com da máquina remota ( B ) e, em seguida, emitiria esse comando SSH na máquina B .

ssh username@machineA 'open http://google.com'

Isso iniciaria um SSH conectado de volta à sua máquina local e executaria o comando open http://google.com , que abriria uma janela do navegador - com base em seu navegador padrão - que irá para a URL que foi passada para ela; http://google.com .

    
por 16.04.2015 / 22:37