Memulai program Windows GUI di Windows melalui Cygwin sshd dari ssh client

10

Saya ingin ssh ke dalam kotak Windows saya yang menjalankan Cygwin sshd dan menjalankan aplikasi Windows GUI di kotak Windows itu. Saya tidak ingin penerusan X.

mis. Dari terminal ubuntu-server, saya ssh ke Windows menjalankan sshd dan kemudian saya meluncurkan notepad.exe. Notepad.exe akan ditampilkan di Windows, bukan di ubuntu-server tanpa X windows.

Menangkan Myo Htet
sumber

Jawaban:

12

Metode yang tepat tampaknya memiliki beberapa masalah:

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

Instal ulang 'sshd' dengan menetapkan tanda '-i' ke 'cygrunsrv' atau edit layanan saat ini di bawah "Alat Administratif" -> "Layanan" dan centang "Izinkan layanan untuk berinteraksi dengan desktop" di tab "Masuk" pada layanan. "Properti".

Jadi saya coba beberapa hack. Saya membuat cygwin_screen.cmd dan meletakkannya di folder Startup Windows.

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

start_screen.sh sederhana dan akan memastikan bahwa kita memiliki layar untuk dilampirkan.

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

Sekarang saya bisa login jarak jauh ke Windows dari ssh client dan melampirkan ke layar itu ketika saya ingin menjalankan aplikasi Windows GUI.

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc
Menangkan Myo Htet
sumber
Solusi ini berfungsi untuk saya, tetapi ketika saya melepaskan lagi, proses layar klien hang. Saya harus ctrl-z keluar, dan membunuh prosesnya. Membuat daemon dalam satu konteks (pada kotak windows), dan melampirkan dari yang lain (ssh login) tampaknya menciptakan masalah ini. Membuat dan kemudian melampirkan dari koneksi ssh saya tidak menyebabkan konflik.
Tim Rupe
1

Gunakan PSTools dan jalankan perintah seperti di bawah ini dari ssl client. ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad

fx-kirin
sumber
0

Solusi saya mirip dengan Win Myo Htet, kecuali menggunakan tmux, yang lebih fleksibel.

  1. Mulai tmux pada terminal Cygwin lokal.

    cygwin-host$ tmux

  2. Gunakan ssh untuk menjalankan perintah dari jarak jauh, yang dihosting di sesi tmux.

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

Ahli Fisika enigmatic
sumber