Запустить скрипт на удаленной машине через ssh с python — но наоборот?

Вот что мне нужно сделать:

Пользователь находится на удаленной машине и подключается к серверу через ssh. Он запускает скрипт Python на сервере. Сценарий, работающий на сервере, запускает сценарий на удаленной машине пользователя в качестве подпроцесса и открывает канал для связи с ним.

Во-первых, это вообще возможно?

Во-вторых, возможно ли это таким образом, чтобы пользователю не нужно было делать ничего необычного, например, открывать обратный ssh-туннель? Если им нужно открыть обратный ssh-туннель, могу ли я выяснить, какой порт они используют?


person shino    schedule 18.08.2010    source источник
comment
Я бы подумал, что было бы более разумно, если бы пользователь запускал скрипт Python на стороне клиента, а не просто подключался напрямую через SSH. Сценарий, который запускает пользователь, сможет открывать соединение SSH, отправлять данные на сервер и получать инструкции, а также запускать любые другие сценарии, которые необходимо запустить на клиенте.   -  person David Z    schedule 18.08.2010
comment
Запуск скрипта на компьютере пользователя для меня не вариант.   -  person shino    schedule 18.08.2010


Ответы (1)


Во-первых, это вообще возможно?

С простым пользователем --SSH--> server - нет, это не так.

возможно ли это таким образом, что пользователю не нужно делать ничего необычного

Пользователь должен будет запустить sshd на своей машине, добавить пользователя для вашего сервера и каким-то образом позволить вам подключиться к нему, минуя NAT, если он есть. Так что нет, с SSH такого пути нет.

Я бы пошел с клиентским приложением. Дайте скрипт пользователю и позвольте ему запустить скрипт вместо SSH. Если вам нужно связаться с сервером, вы можете использовать что-то вроде paramiko на стороне клиента для подключения к серверу. из сценария. Затем скрипт может запускать другие приложения на клиентском компьютере на основе данных, которые он получает с сервера.

person Daniel Kluev    schedule 18.08.2010