我想透過 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.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,它具有更大的靈活性。
在本機 Cygwin 終端機上啟動 tmux。
cygwin-host$ tmux
使用 ssh 在 tmux 會話中遠端執行該命令。
other-host$ ssh cygwin-host tmux new-window notepad