Posso executar um script na minha máquina Windows LOCAL a partir do PuTTY?

1

Eu uso um cliente twitter de linha de comando, TTYtter , através do PuTTY em uma caixa linux. Muitos tweets contêm links, portanto, há um comando /url para abrir urls, que procura URLs em um determinado tweet e executa um comando localmente para iniciar um navegador com esse URL (por exemplo, open %U no mac ou firefox -new-tab %U no Linux).

Minha pergunta: Existe um comando que eu possa executar dentro de uma sessão do PuTTY para abrir uma URL em minha máquina local (windows 7)? Para colocar de outra forma: existe uma maneira, de dentro de uma sessão SSH no PuTTY, para chegar fora da sessão SSH para a máquina local?

EDIT: Outra abordagem: Existe alguma combinação de PuTTY e um daemon ssh do Windows ou cygwin ou algo que eu poderia usar para ssh para minha caixa local (loopback) e acionar uma guia para abrir? Eu uso o tmux para multiplexação, então meu objetivo é ter todas as minhas coisas em uma janela de massa.

    
por sequoia mcdowell 06.09.2011 / 18:49

2 respostas

0

Então, isso provavelmente não funciona em muitos casos, mas eis o que eu criei:

  1. Execute um serviço na máquina host que ouça as URLs recebidas.

    Eu usei o NodeJS aqui sem nenhum motivo específico; Tenho certeza de que as linguagens de script mais populares funcionam.

    var http = require('http'),
      querystring = require('querystring'),
      cp = require('child_process'),
      ip = '127.0.0.1',
      port = 9090,
      links_opened = 0;
      //urlopen curl --data "url=%U" 10.0.2.2:9090 %U  <- cmd for ttytter
    http.createServer(function (req, res) {
      if (req.method == 'POST') {
        req.on('data', function(chunk) {
      //get URL
          var _post = querystring.parse(chunk.toString()),
          //url has extra quotes for some reason:
            url_to_open = _post.url.match(/^'(.*)'$/)[1],
          //these three lines are just for nicely numbered console history (up to 999)
            link_ind = ++links_opened + ".",
            ln = link_ind + Array(5 - link_ind.length).join(' ');//pad it
            console.log( ln + url_to_open);
      //open tab
          cp.spawn('c:\Program Files (x86)\Mozilla Firefox\firefox.exe', ['-new-tab', url_to_open]);
        });
      }
    
      req.on('end', function() {
        //respond w/204 (success, no output)
        res.writeHead(204);
        res.end();
      });
    }).listen(port, ip);
    console.log('Server running at http://' + ip + ":" + port);
    
  2. Envie URLs do host para o convidado (usei cURL).

    No meu .ttytterrc , defino a opção urlopen assim: urlopen curl --data "url=%U" 10.0.2.2:9090 %U (% U é expandido para a URL: consulte urlopen ).

Eu chamo / url < tweet ID & gt ;, ele envia uma solicitação para minha máquina host e o serviço do nó abre uma nova guia na minha janela atual do navegador. Tenho certeza de que há uma série de possíveis problemas de segurança aqui, mas, dadas as configurações de firewall adequadas, as verificações de IP no script nodeJS, etc., elas não são showstoppers. De qualquer forma, funciona para mim!

    
por 22.09.2011 / 03:32
3

O PuTTY não suporta o lançamento de aplicativos locais, a menos que você esteja conectado via SSH à máquina local. Uma opção é instalar o Cygwin na sua caixa do Windows e instalar o TTYtter lá. Essencialmente, o TTYtter é uma coleção de scripts Perl e deve funcionar bem no Cygwin, supondo que você tenha o Perl instalado também.

    
por 06.09.2011 / 19:13