Как я могу выполнить команду на локальном компьютере из сеанса SSH?

Как я могу выполнить команду на локальном компьютере из сеанса SSH?

Пример использования:

  1. Я работаю на своем ноутбуке под управлением Mac OS X (А) и я вошел на свой сервер разработки (Б) через SSH.
  2. У меня есть скрипт, который сгенерирует URL-адрес GitHub для файла/ветки, которые в данный момент открыты в моем редакторе (Б).
  3. Я хотел бы открыть этот URL в браузере на моем ноутбуке (А).

Другие варианты использования могут включать:

  • Обновляйте браузер каждый раз, когда я сохраняю файл
  • Воспроизвести песню локально, когда я выдаю командукоманда git
  • Откройте тикет Jira, соответствующий филиалу, который я проверил.

решение1

Вы можете использовать обратный туннель SSH. Это работает так; сделайте это на машине, которую вы используете, remote_serverвот имя удаленного сервера:

ssh -R 13000:localhost:22 remote_server

И отобразите изображение на вашем local machineустройстве remote server:

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

РЕДАКТИРОВАТЬ: На машине Mac OS может быть не установлен X-сервер, я им не пользуюсь, но общая идея остается прежней. Преимущество использования обратного туннелирования в том, что вашей локальной машине не обязательно иметь публичный IP-адрес.

решение2

Это может быть не самым элегантным способом решения этой проблемы, но — поскольку вы используете Mac OS X — единственное, что я могу придумать, если вы уже удаленно подключены к другой машине, — это отправить команду SSH обратно на ваш хост, как это. Главное условие — вам нужно запустить и запустить сервер SSH на вашем ноутбуке Mac OS X и убедиться, что правила брандмауэра вашего маршрутизатора разрешают подключения SSH на порту 22, чтобы это работало.

Предположим, что ваш ноутбук имеет имя machineAи вы хотите открыть URL-адрес http://google.comс удаленной машины (Б) тогда вам просто нужно выполнить эту команду SSH на машинеБ.

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

Это инициирует обратное SSH-подключение к вашей локальной машине и запускает команду open http://google.com, которая откроет окно браузера (на основе вашего браузера по умолчанию), которое перейдет по переданному ему URL-адресу; http://google.com.

Связанный контент