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

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

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

예를 들어 ubuntu-server 터미널에서 sshd를 실행하는 Windows에 ssh를 접속한 다음 notepad.exe를 실행합니다. notepad.exe는 X 창이 없는 ubuntu-server가 아닌 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

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

그래서 해킹을 시도합니다. 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"

이제 SSH 클라이언트에서 Windows에 원격으로 로그인하고 Windows GUI 애플리케이션을 실행하려고 할 때 해당 화면에 연결할 수 있습니다.

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc

답변2

사용PSToolsSSL 클라이언트에서 아래와 같은 명령을 실행합니다. ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad

답변3

내 솔루션은 유연성이 더 뛰어난 tmux를 사용한다는 점을 제외하면 Win Myo Htet의 솔루션과 유사합니다.

  1. 로컬 Cygwin 터미널에서 tmux를 시작합니다.

    cygwin-host$ tmux

  2. ssh를 사용하여 tmux 세션에서 호스팅되는 명령을 원격으로 실행하세요.

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

관련 정보