如何将 putty ssh 隧道作为 Windows 服务运行?

Cha*_*ang 5 windows ssh services putty ssh-tunnel

在 Windows XP 或更高版本中,我可能会运行 shell 命令

putty.exe -load ssh_tunnel
Run Code Online (Sandbox Code Playgroud)

启动配置为 ssh 隧道的 ssh 会话。

我想在我的计算机启动时 ssh 隧道会话变得可用,而无需登录任何用户会话。

将 shell 命令保留在 Windows 服务中似乎是唯一的解决方案。我尝试创建一个服务:

c:\> sc create ssh_tunnel binpath="c:\putty.exe -load ssh_tunnel
[SC] CreateService SUCCESS
Run Code Online (Sandbox Code Playgroud)

服务创建成功。当我启动服务时:

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

The service did not respond to the start or control request in a timely fashion.
Run Code Online (Sandbox Code Playgroud)

它没有开始。

use*_*686 4

Windows服务必须专门编写来响应服务管理器的控制请求。您不能使用任何随机可执行文件作为binPath;你必须使用srvany或类似的工具。

您还应该使用命令行plink而不是putty,因为后者可能无法作为服务正常工作。

最后,请注意 PuTTY 会话是针对每个用户的,存储在您的 Windows 配置文件中。服务通常使用SYSTEM配置文件在特殊帐户下运行。您必须将服务更改为在您自己的帐户下运行,或者也在系统配置文件中配置会话 ( psexec -dsi putty)。