在 Windows XP 或更高版本中,我可能会运行 shell 命令
putty.exe -load ssh_tunnel
启动配置为 ssh 隧道的 ssh 会话。
我希望当我的计算机启动时 ssh 隧道会话可用,而无需登录任何用户会话。
将 shell 命令保留在 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.
它没有启动。
答案1
Windows 服务必须专门编写才能响应服务管理器的控制请求。您不能使用任何随机可执行文件binPath
;您必须使用srvany
或类似工具。
您还应该使用命令行plink
而不是putty
,因为后者可能无法作为服务正常工作。
最后,请注意,PuTTY 会话是按用户存储的,存储在您的 Windows 配置文件中。服务通常使用配置文件在特殊帐户下运行SYSTEM
。您必须将服务更改为在您自己的帐户下运行,或者在 SYSTEM 配置文件中配置会话(psexec -dsi putty
)。