Я хотел бы подключиться по ssh к моему Windows-компьютеру с запущенным Cygwin sshd и запустить приложение Windows GUI на этом Windows-компьютере. Мне не нужна переадресация X.
например, из терминала ubuntu-server я подключаюсь по ssh к Windows, запуская sshd, а затем запускаю notepad.exe. Notepad.exe будет отображаться в Windows, а не в ubuntu-server без X windows.
решение1
Кажется, правильный метод имеет некоторые проблемы:
http://cygwin.com/ml/cygwin/2007-10/msg00334.html
Переустановите «sshd», указав флаг «-i» для «cygrunsrv», или отредактируйте текущую службу в разделе «Администрирование» -> «Службы» и установите флажок «Разрешить службе взаимодействовать с рабочим столом» на вкладке «Вход в систему» в «Свойствах» службы.
Поэтому я пробую хак. Я создаю cygwin_screen.cmd и помещаю его в папку автозагрузки Windows.
@echo off
C:
chdir C:\cygwin\bin
bash --login -i "/home/username/bin/start_screen.sh"
start_screen.sh прост и гарантирует, что у нас будет экран, к которому можно подключиться.
#!/bin/bash
screen -dmS "my_screen"
Теперь я могу удаленно войти в Windows с помощью SSH-клиента и подключиться к этому экрану, когда захочу запустить приложение Windows GUI.
$screen -d -r my_screen
$notepad.exe
$cygstart my_doc.doc
решение2
ИспользоватьPSToolsи выполните команду, как показано ниже, из SSL-клиента.
./PsExec.exe -i -d -s \\\\127.0.0.1 notepad
решение3
Мое решение похоже на решение Win Myo Htet, за исключением того, что оно использует tmux, который более гибок.
Запустите tmux на локальном терминале Cygwin.
cygwin-host$ tmux
Используйте ssh для удаленного запуска команды, размещенной в сеансе tmux.
other-host$ ssh cygwin-host tmux new-window notepad