sshクライアントからCygwin sshdを介してWindowsでWindows GUIプログラムを開始する


10

Cygwin sshdを実行しているWindowsボックスにsshし、そのWindowsボックスでWindows GUIアプリケーションを実行したいと思います。X転送を必要としません。

たとえば、ubuntu-serverターミナルから、sshdを実行しているWindowsにsshしてから、notepad.exeを起動します。notepad.exeは、Xウィンドウのないubuntu-serverではなく、Windowsで表示されます。

回答:


12

適切な方法にはいくつかの問題があるようです:

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

「-i」フラグを「cygrunsrv」に指定して「sshd」を再インストールするか、「管理ツール」->「サービス」で現在のサービスを編集し、サービスの「ログオン」タブで「サービスがデスクトップと対話することを許可する」にチェックを入れます"プロパティ"。

だから私はいくつかのハックを試します。cygwin_screen.cmdを作成し、WindowsのStartupフォルダーに配置します。

@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にリモートログインし、Windows GUIアプリケーションを実行したいときにその画面に接続できます。

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc

この解決策は私にとってはうまくいきますが、再び切り離すと、クライアント画面プロセスがハングします。ctrl-zを押して、プロセスを強制終了する必要があります。あるコンテキスト(Windowsボックス上)でデーモンを作成し、別のコンテキスト(sshログイン)から接続すると、この問題が発生するようです。ssh接続から作成して接続しても、競合は発生しません。
Tim Rupe

1

PSToolsを使用して、sslクライアントから以下のようなコマンドを実行します。 ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad


0

私のソリューションはWin Myo Htetのソリューションに似ていますが、より柔軟なtmuxを使用します。

  1. ローカルCygwin端末でtmuxを起動します。

    cygwin-host$ tmux

  2. sshを使用して、tmuxセッションでホストされているコマンドをリモートで実行します。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.