SSH 클라이언트에서 Cygwin sshd를 통해 Windows에서 Windows GUI 프로그램 시작


10

Cygwin sshd를 실행하는 Windows 상자에 ssh하고 Windows 상자에서 Windows GUI 응용 프로그램을 실행하고 싶습니다. X 전달을 원하지 않습니다.

예를 들어 우분투 서버 터미널에서 sshd를 실행하는 Windows로 ssh 한 다음 notepad.exe를 시작합니다. notepad.exe는 X 윈도우가없는 우분투 서버가 아닌 Windows에 표시됩니다.

답변:


12

올바른 방법에는 몇 가지 문제가있는 것 같습니다.

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

'-i'플래그를 'cygrunsrv'로 지정하여 'sshd'를 다시 설치하거나 "관리 도구"-> "서비스"에서 현재 서비스를 편집하고 서비스의 "로그온"탭에서 "서비스가 데스크탑과 상호 작용하도록 허용"을 선택하십시오. "속성".

그래서 나는 해킹을 시도합니다. cygwin_screen.cmd를 만들어 Windows Startup 폴더에 넣습니다.

@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"

이제 ssh 클라이언트에서 Windows에 원격으로 로그인하여 Windows GUI 응용 프로그램을 실행하려고 할 때 해당 화면에 연결할 수 있습니다.

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc

이 솔루션은 저에게 효과적이지만 다시 분리하면 클라이언트 화면 프로세스가 중단됩니다. ctrl-z를 꺼내고 프로세스를 종료해야합니다. 한 컨텍스트에서 (Windows 상자에서) 데몬을 작성하고 다른 컨텍스트에서 연결 (ssh 로그인)하면이 문제가 발생하는 것 같습니다. 내 ssh 연결에서 만들고 연결해도 충돌이 발생하지 않습니다.
Tim Rupe

1

PSTools를 사용 하고 ssl 클라이언트에서 다음과 같은 명령을 실행하십시오. ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad


0

내 솔루션은 유연성이 더 큰 tmux를 사용한다는 점을 제외하고 Win Myo Htet와 유사합니다.

  1. 로컬 Cygwin 터미널에서 tmux를 시작하십시오.

    cygwin-host$ tmux

  2. ssh를 사용하여 tmux 세션에서 호스트 된 명령을 원격으로 실행하십시오.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.