Можно ли запустить сценарий на локальном компьютере windows из PuTTY?

Я использую клиент командной строки twitter,TTYtter, через замазку на Linux. Много твитов содержат ссылки, так что есть /url команда для открытия URL-адресов, которая ищет URL-адреса a в данном твите и запускает команду на них локально, чтобы запустить браузер с этим url-адресом (например,open %U на mac или firefox -new-tab %U на Linux).

мой вопрос: есть ли команда, которую я могу запустить из сеанса PuTTY, чтобы открыть URL-адрес в моей локальной машине (windows 7)? поставить его другой способ: есть ли способ, из сеанса SSH в PuTTY, выйти из сеанса SSH на локальную машину?

EDIT: другой подход:есть ли какая-либо комбинация шпатлевки и демона Windows ssh или cygwin или что-то, что я мог бы использовать для ssh в мой локальный ящик (loopback) и вызвать вкладку Для открытия? Я использую tmux для мультиплексирования, поэтому моя цель состоит в том, чтобы все мои вещи в одном окне шпатлевки.

6
задан sequoia mcdowell
15.04.2023 19:27 Количество просмотров материала 2924
Распечатать страницу

2 ответа

PuTTY не поддерживает запуск локальных приложений, если, конечно, вы не подключены через SSH к локальной машине. Один из вариантов-установить Cygwin в окне окон и установить TTYtter там. По существу TTYtter представляет собой набор скриптов Perl и должен отлично работать на Cygwin при условии, что у вас также установлен Perl.

3
отвечен John T 2023-04-17 03:15

Так что это, вероятно, не работает во многих случаях, но вот что я придумал:

  1. запустить службу на хост-компьютере, которая прослушивает входящие URL-адреса.

    Я NodeJS здесь без особых причин; я уверен, что большинство популярных языков сценариев будут работать.

    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. отправить URL-адреса от хоста к гостю (я использовал cURL).

    в своем .ttytterrc, Я определяю опцию urlopen так:urlopen curl --data "url=%U" 10.0.2.2:9090 %U (%U расширяется до URL: see urlopen).

Я вызываю / url , он отправляет запрос на мою хост-машину, и служба узлов открывает новую вкладку в моем текущем окне браузера. Я уверен, что здесь есть множество потенциальных проблем безопасности, но, учитывая правильные настройки брандмауэра, проверки IP в сценарии nodeJS и т. д.- это не подставные лица. Во всяком случае, это работает для меня!

0
отвечен sequoia mcdowell 2023-04-17 05:32

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх