Как открыть удаленную программу на Python из терминала по ssh?

Я печатаю ssh -X name@blah.edu и спрашиваю пароль, я набираю его и захожу.

name@blah.edu:~$  program.py

тогда ничего не происходит, когда оно должно всплыть. Почему это происходит и как мне это решить?

2
задан 28 February 2012 в 19:00

6 ответов

Вам также может понадобиться добавить/отключить следующую строку из вашего /etc/ssh/sshd_config:

X11Forwarding yes

Флаг -X бесполезен без этого.

3
ответ дан 28 February 2012 в 19:00

Вероятно, вам нужно включить переадресацию X в конфигурационном файле вашего SSH сервера, /etc/ssh/sshd_config:

X11Forwarding yes

Если у вас нет доступа к этому файлу, боюсь, вам придется попросить вашего сисадмина включить эту функцию.

2
ответ дан 28 February 2012 в 19:00

Так же, как и на вашем компьютере,
ssh -X remotehost python remotepython programm. py

Для просмотра кода программы,
ssh -X remotehost меньше remoteepythonprogram.py

0
ответ дан 28 February 2012 в 19:00

Похоже, что где-то установлена ваша переменная DISPLAY. Когда я SSH вхожу в свою машину с телефона (с переадресацией X) и запускаю следующее:

oli@bert:~$ echo $DISPLAY
localhost:10.0

Хотя это не является гарантией, переадресация X обычно использует большие номера дисплея.

Если ваша ~/.bashrc настроена на переопределение дисплея, вы, скорее всего, увидите что-то более похожее на :0.

Вы можете либо угадать и переопределить переменную DISPLAY на localhost:10.0 после подключения:

export DISPLAY=localhost:10.0

найти, где вы настраиваете отображение в ваших локальных bash-файлах.


Я должен добавить, что можно отключить переадресацию X в настройках SSHd (/etc/ssh/sshd_config), так что, возможно, вы захотите проверить и это.

0
ответ дан 28 February 2012 в 19:00

Проблема в том, что SSH-соединение не переадресовывает X11 команды по соединению.

Если машина, которую вы используете для соединения, работает под управлением Linux (или другой ОС с X), то просто передайте параметр -X при вызове SSH.

Если вы соединяетесь с Microsoft Windows, то вам понадобится программа, которая может преобразовывать команды X11 в команды Windows API. Попробуйте посмотреть на XMing или cygwin.

3
ответ дан 28 February 2012 в 19:00

Решение Оливера - это путь, если вы хотите переслать X, но понимаете, что это может быть полоса пропускания.

Альтернативным решением является использование редактора командной строки типа vim или nano. Лично я бы выбрал vim. У него есть более крутая кривая обучения, но как только ты это преодолеешь, ты не захочешь возвращаться ни к чему другому =). Вы можете начать его изучение, выполнив vimtutor для учебника по основам.

0
ответ дан 28 February 2012 в 19:00

Другие вопросы по тегам:

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