Запуск программы Windows GUI в Windows через Cygwin sshd из ssh-клиента

Запуск программы Windows GUI в Windows через Cygwin sshd из ssh-клиента

Я хотел бы подключиться по 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.1069669.n5.nabble.com/Windows-GUI-programs-eg-notepad-start-but-are-invisible-after-ssh-login-td56256.html

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, который более гибок.

  1. Запустите tmux на локальном терминале Cygwin.

    cygwin-host$ tmux

  2. Используйте ssh для удаленного запуска команды, размещенной в сеансе tmux.

    other-host$ ssh cygwin-host tmux new-window notepad

Связанный контент