web-dev-qa-db-ja.com

WindowsサービスとしてPuTTYsshトンネリングを実行するにはどうすればよいですか?

Windows XP以上では、シェルコマンドを実行できます

PuTTY.exe -load ssh_tunnel

sshトンネリングとして設定されたsshセッションを開始します。

コンピュータがユーザーセッションにログオンせずに起動したときに、トンネルセッションを利用できるようにしたい。

Windowsサービスでシェルコマンドを保持することが唯一の解決策のようです。サービスを作成してみます:

c:\> sc create ssh_tunnel binpath="c:\PuTTY.exe -load ssh_tunnel
[SC] CreateService SUCCESS

サービスが正常に作成されました。サービスを開始するとき:

C:\>sc start ssh_tunnel
[SC] StartService FAILED 1053:

The service did not respond to the start or control request in a timely fashion.

始まらない。

4
Chau Chee Yang

Windowsサービスは、ServiceManagerの制御要求に応答するように特別に作成する必要があります。ランダムな実行可能ファイルをbinPathとして使用することはできません。 srvanyまたは同様のツールを使用する必要があります。

plinkの代わりにコマンドラインPuTTYも使用する必要があります。後者は、サービスとして正しく機能しない可能性があるためです。

最後に、PuTTYセッションはユーザーごとであり、Windowsプロファイルに保存されていることに注意してください。サービスは通常、SYSTEMプロファイルを使用して特別なアカウントで実行されます。自分のアカウントで実行するようにサービスを変更する必要がありますまたはSYSTEMプロファイルでもセッションを構成します(psexec -dsi PuTTY)。

4
user1686