Я печатаю ssh -X name@blah.edu
и спрашиваю пароль, я набираю его и захожу.
name@blah.edu:~$ program.py
тогда ничего не происходит, когда оно должно всплыть. Почему это происходит и как мне это решить?
Вам также может понадобиться добавить/отключить следующую строку из вашего /etc/ssh/sshd_config
:
X11Forwarding yes
Флаг -X бесполезен без этого.
Вероятно, вам нужно включить переадресацию X в конфигурационном файле вашего SSH сервера, /etc/ssh/sshd_config
:
X11Forwarding yes
Если у вас нет доступа к этому файлу, боюсь, вам придется попросить вашего сисадмина включить эту функцию.
Так же, как и на вашем компьютере,
ssh -X remotehost python remotepython programm. py
Для просмотра кода программы,
ssh -X remotehost меньше remoteepythonprogram.py
Похоже, что где-то установлена ваша переменная 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
), так что, возможно, вы захотите проверить и это.
Проблема в том, что SSH-соединение не переадресовывает X11 команды по соединению.
Если машина, которую вы используете для соединения, работает под управлением Linux (или другой ОС с X), то просто передайте параметр -X
при вызове SSH.
Если вы соединяетесь с Microsoft Windows, то вам понадобится программа, которая может преобразовывать команды X11 в команды Windows API. Попробуйте посмотреть на XMing или cygwin.
Решение Оливера - это путь, если вы хотите переслать X, но понимаете, что это может быть полоса пропускания.
Альтернативным решением является использование редактора командной строки типа vim
или nano
. Лично я бы выбрал vim
. У него есть более крутая кривая обучения, но как только ты это преодолеешь, ты не захочешь возвращаться ни к чему другому =). Вы можете начать его изучение, выполнив vimtutor
для учебника по основам.