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

Я хотел бы знать, возможно ли запустить локальное приложение на удаленном сервере с помощью протокола SSH?

2
задан 28.02.2011, 21:52

3 ответа

Для выполнения локально установленных приложений с помощью ЦП другого компьютера и памяти Вы могли — предполагающий, что процессоры совместимы — пробуют это. Я не уверен, как хорошо это будет работать, но теория кажется звуковой :) Вам, вероятно, будет нужен доступ суперпользователя на удаленном сервере для этого для работы.

  • ssh в к удаленному серверу

  • Смонтируйте локальную корневую файловую систему где-нибудь. Вы не должны делать этого вообще, если Вы не совершенно уверены, что можно доверять администраторам удаленной системы.

    • Это может быть сделано через sshfs, пока Вы можете ssh от сервера до локальной системы. Я думаю, что можно подстроить это путем передачи порта назад посредством связи, которую Вы установили, когда sshing в с локального на сервер, но я не вошел к таким интригам сам.
      • Как правило, если бы локальная машина находится в домашней сети, Вы просто настроили бы перенаправление портов на своем маршрутизаторе. Необходимо, вероятно, отключить вход в систему пароля в sshd_config локальной системы прежде, чем пойти этим путем и генерировать ssh ключ с паролем для учетной записи на сервере, scpлуг id_?sa.pub файл назад к локальному для добавления его к Вашему ~/.ssh/authorized_keys. Ограничение IP-адресов, которые могут ssh в к Вашей машине, является другой хорошей идеей. И так далее.
    • Если Вы хотите выполнить что-нибудь, что должно работать как корень, я думаю, что необходимо будет настроить sshfs, монтируются, чтобы быть корнем в локальной файловой системе. Это означает, что необходимо было бы позволить людям ssh в к локальному полю как корень, который является другой сомнительной политической акцией. Я на самом деле не уверен в этом, Вы смогли к sudo в оболочке chroot.
    • Вы могли смонтировать его другие пути, например, через NFS, но sshfs является, вероятно, самым легким для обеспечения. Выполнение всего этого по VPN, вероятно, было бы более мудрым.
  • После того как Вам смонтировали файловую систему и все еще ssh в редакторе к серверу, сделать

    chroot/path/to/mount/of/local/filesystem УПРАВЛЯЮТ ARGS

Или Вы можете просто cd к каталогу и выполненный chroot, и затем Вы отсортируете, имеют корневую оболочку в Вашей собственной системе, при этом обработка сделана сервером. Первая форма имеет преимущество разрешения Вам удобно сохранить вывод к системе сервера, так как любые перенаправления будут сделаны на сервер. НАПРИМЕР.

chroot /path/to/mount/of/local/filesystem find -iname "somefile" > ~/tmp/somefile.find.out

сохранит список файлов, названных "somefile" в Вашем домашнем временном каталоге на сервере.

протесты

Это, по крайней мере, с моей точки зрения, довольно экспериментальной. Я не уверен, что могло пойти не так, как надо, но я не попробую его, если несколько человек не будут ручаться за него. Даже затем я не попробовал бы его в производственной системе. Если бы я делал сериал IT, то этот сегмент был бы снабжен субтитрами со словами, "не ПРОБУЮТ ЭТО ДОМА".

Определенно у Вас должны будут быть совместимые процессоры на этих двух машинах: если локальная система является i386, сервер должен будет быть i386 или amd64. Кроме того, так как ядро сервера будет выполнением работы, Вы только сможете запустить локальные приложения, которые работают с версией ядра, это работает на сервере. Вероятно, было бы лучше, если бы они были той же версией. Таким образом, если и Ваше локальное поле и удаленный сервер работают, 32-разрядные Debian Сжимают, то это могло бы работать без проблем.

Как дальнейшее примечание: может быть очень ограниченное преимущество для выполнения вещей этот путь, начиная с любых данных, которые должны быть переданы назад и вперед — включая оба файла, которые будут обработаны, и сами приложения — должны будут быть зашифрованы и переданы по Вашему удаленному соединению. Таким образом, если Вы надеетесь делать это для использования максимальной вычислительной мощности сервера, Вы не можете получить очень много в конце и можете потерять некоторых.

1
ответ дан 08.12.2019, 07:27

Это во многом зависит от того, как Вы определяете термины, которые Вы используете:

  • 'Запуск приложения' обычно означает 'позволять ЦП обработать инструкции двоичного файла (".exe")'.

  • 'Локально' обычно означает 'ЦП машины, перед которой я сижу, выполняет код'

  • ssh используется для шифрования потоков информации

Так, каково это должно быть?

  • Вы хотите запустить свое локальное приложение локально (Вашим ЦП), но Вы хотите взаимодействовать с ним с сервера? Да, это может быть сделано через ssh, искать 'ssh туннелирование'.

  • Вы хотите, чтобы Ваше локальное приложение было обработано ЦП сервера? Затем необходимо скопировать двоичный файл / локальное приложение на сервер, и затем Вы запускаете его на сервере. Вы могли использовать ssh, чтобы сделать копирование. Но Ваше 'локальное приложение' не то, что локально больше после копирования.

Вы не можете выполнить код на ЦП, не делая этого доступным для ЦП прежде.

2
ответ дан 08.12.2019, 07:27

Вы можете от одной машины (машина A) запрашивают, чтобы другая машина (машина B) уже запустила программу на машине B. ssh, позволил бы Вам сделать это.

И я думаю, что Вы можете от машины, доступ говорит, что файл установки от машины B, и выполняет его на машине A, который передал бы файл в RAM A машины. Я думаю, что совместный доступ к файлам окон делает это. (который не перемещает или копирует файл между прочим, никакой файл не исчезает или появляется где угодно в выполнении этого. Лучшая терминология могла бы быть то, что файл копируется в RAM и становится процессом, это происходит любое время, программа запущена даже когда локальный),

В теории я предполагаю очень прохладный ЦП, и инструкции могли читать из RAM на другом компьютере. Вы хотели бы по сети также. Возможно, технология буквально там, но я не знал бы где/какой.

0
ответ дан 08.12.2019, 07:27

Теги

Похожие вопросы