Iniciando o programa GUI do Windows no Windows através do Cygwin sshd a partir do cliente ssh

10

Gostaria de ssh na minha caixa do Windows executando o Cygwin sshd e executar o aplicativo Windows GUI nessa caixa do Windows. Eu não quero o encaminhamento do X.

Por exemplo, no terminal ubuntu-server, ssh no Windows executando o sshd e inicio um notepad.exe. O notepad.exe será exibido no Windows, não no ubuntu-server sem o X windows.

Win Myo Htet
fonte

Respostas:

12

O método adequado parece ter algum problema:

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

Reinstale o 'sshd' especificando o sinalizador '-i' para 'cygrunsrv' ou edite o serviço atual em "Ferramentas Administrativas" -> "Serviços" e marque "Permitir que o serviço interaja com a área de trabalho" na guia "Logon" do serviço "Propriedades".

Então eu tentei hackear. Eu crio um cygwin_screen.cmd e o coloco na pasta Inicialização do Windows.

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

start_screen.sh é simples e garantirá que tenhamos a tela à qual anexar.

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

Agora posso fazer login remoto no Windows a partir do cliente ssh e conectar-me a essa tela quando desejar executar o aplicativo GUI do Windows.

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc
Win Myo Htet
fonte
Essa solução funciona para mim, mas quando eu desanexo novamente, o processo de tela do cliente trava. Eu devo pressionar Ctrl-Z e matar o processo. Criar o daemon em um contexto (na caixa do Windows) e anexar a partir de outro (login do ssh) parece criar esse problema. Criar e anexar a partir da minha conexão ssh não causa o conflito.
Tim Rupe
1

Use o PSTools e execute o comando como abaixo no cliente ssl. ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad

fx-kirin
fonte
0

Minha solução é semelhante à do Win Myo Htet, exceto pelo tmux, que tem mais flexibilidade.

  1. Inicie o tmux em um terminal Cygwin local.

    cygwin-host$ tmux

  2. Use ssh para executar o comando remotamente, hospedado na sessão tmux.

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

EnigmaticPhysicist
fonte