Cygwin sshdを実行しているWindowsボックスにSSHで接続し、そのWindowsボックスでWindowsGUIアプリケーションを実行したいと思います。 X転送は必要ありません。
例えばubuntu-serverターミナルから、sshdを実行しているWindowsにsshしてから、notepad.exeを起動します。 notepad.exeは、Xウィンドウのないubuntu-serverではなく、Windowsで表示されます。
適切な方法にはいくつかの問題があるようです:
http://cygwin.com/ml/cygwin/2007-10/msg00334.html
'-i'フラグを 'cygrunsrv'に指定して '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にリモートログインし、WindowsGUIアプリケーションを実行するときにその画面に接続できます。
$screen -d -r my_screen
$notepad.exe
$cygstart my_doc.doc
PSTools を使用し、sslクライアントから以下のようなコマンドを実行します。 ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad
私のソリューションはWinMyo Htetのソリューションに似ていますが、柔軟性の高いtmuxを使用している点が異なります。
ローカルのCygwinターミナルでtmuxを起動します。
cygwin-Host$ tmux
Sshを使用して、tmuxセッションでホストされているコマンドをリモートで実行します。
other-Host$ ssh cygwin-Host tmux new-window notepad