從 ssh 用戶端透過 Cygwin sshd 在 Windows 中啟動 Windows GUI 程式

從 ssh 用戶端透過 Cygwin sshd 在 Windows 中啟動 Windows GUI 程式

我想透過 ssh 進入運行 Cygwin sshd 的 Windows 機器,並在該 Windows 機器中執行 Windows GUI 應用程式。我不想 X 轉發。

例如,從 ubuntu-server 終端,我透過 ssh 進入執行 sshd 的 Windows,然後啟動 notepad.exe。 notepad.exe 會在 Windows 中顯示,而不是在沒有 X windows 的 ubuntu-server 中顯示。

答案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

重新安裝“sshd”,將“-i”標誌指定為“cygrunsrv”,或在“管理工具”->“服務”下編輯目前服務,並在服務的“登入”標籤中選取“允許服務與桌面交互” “特性”。

所以我嘗試一些技巧。我建立了一個 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"

現在,當我想要執行 Windows GUI 應用程式時,我可以從 ssh 用戶端遠端登入 Windows 並附加到該畫面。

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc

答案2

使用PS工具並從 ssl 客戶端執行以下命令。 ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad

答案3

我的解決方案與 Win Myo Htet 的類似,只是它使用 tmux,它具有更大的靈活性。

  1. 在本機 Cygwin 終端機上啟動 tmux。

    cygwin-host$ tmux

  2. 使用 ssh 在 tmux 會話中遠端執行該命令。

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

相關內容