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

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

Exemplo de caso de uso:

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

Outros casos de uso podem incluir:

  • Atualize meu navegador sempre que salvar um arquivo
  • Tocar uma música localmente quando eu emitir umcomando git
  • Abra um ticket do Jira correspondente à filial que fiz check-out.

Responder1

Você pode usar o túnel reverso 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 em imagem no local machineseu remote server:

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

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

Responder2

Esta pode não ser a maneira mais elegante de abordar isso, mas - como você está usando o Mac OS X - a única coisa que consigo pensar se você já estiver remoto para outra máquina é emitir um comando SSH de volta ao seu host assim . O grande pré-requisito é que você precise ter seu servidor SSH instalado e funcionando em seu laptop Mac OS X e certificar-se de 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 um nome machineAe você queira abrir uma URL como http://google.comna máquina remota (B) então você apenas emitiria este comando SSH na máquinaB.

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.comque abriria uma janela do navegador – com base no seu navegador padrão – que irá para a URL que foi passada para ele; http://google.com.

informação relacionada