Uruchamianie programu Windows GUI w systemie Windows przez Cygwin sshd z klienta ssh

10

Chciałbym ssh w moim oknie Windows z uruchomionym Cygwin sshd i uruchomić aplikację Windows GUI w tym oknie Windows. Nie chcę przekazywania X.

np. z terminala serwera Ubuntu, ssh do Windows z uruchomionym sshd, a następnie uruchamiam notepad.exe. Notatnik.exe zostanie wyświetlony w systemie Windows, a nie na serwerze Ubuntu bez systemu Windows.

Win Myo Htet
źródło

Odpowiedzi:

12

Właściwa metoda wydaje się mieć pewien problem:

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

Ponownie zainstaluj „sshd”, określając flagę „-i” na „cygrunsrv” lub edytuj bieżącą usługę w „Narzędzia administracyjne” -> „Usługi” i zaznacz „Zezwalaj usłudze na interakcję z komputerem” w zakładce „Logowanie” "Nieruchomości".

Więc próbuję włamać się. Tworzę plik cygwin_screen.cmd i umieszczam go w folderze Autostart systemu Windows.

@echo off 
C:
chdir C:\cygwin\bin
bash --login -i "/home/username/bin/start_screen.sh"

start_screen.sh jest prosty i upewni się, że mamy ekran do podłączenia.

#!/bin/bash
screen -dmS "my_screen"

Teraz mogę zdalnie zalogować się do systemu Windows z klienta ssh i dołączyć się do tego ekranu, kiedy chcę uruchomić aplikację Windows GUI.

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc
Win Myo Htet
źródło
To rozwiązanie działa dla mnie, ale kiedy ponownie się odłączam, proces ekranu klienta zawiesza się. Muszę przytrzymać Ctrl-Z i zabić proces. Tworzenie demona w jednym kontekście (w oknie systemu Windows) i podłączanie z innego (logowanie ssh) wydaje się stwarzać ten problem. Tworzenie, a następnie dołączanie z mojego połączenia ssh nie powoduje konfliktu.
Tim Rupe
1

Użyj PSTools i uruchom polecenie jak poniżej z klienta ssl. ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad

fx-kirin
źródło
0

Moje rozwiązanie jest podobne do Win Myo Htet, z tym wyjątkiem, że wykorzystuje tmux, który ma większą elastyczność.

  1. Uruchom tmux na lokalnym terminalu Cygwin.

    cygwin-host$ tmux

  2. Użyj ssh, aby uruchomić polecenie zdalnie, hostowane w sesji tmux.

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

enigmatyczny fizyk
źródło