当我试图通过PowerShell在Windows 10上启动ssh-agent时,通过输入start - service ssh-agent我得到了错误

无法启动ssh-agent服务,错误:1058

当我通过Get-Service ssh-agent检查服务是否正在运行时,返回服务已停止。

如何让ssh代理运行?


当前回答

我在Cygwin中得到了同样的错误。我必须在Cygwin安装程序中安装openssh包。

(奇怪的是,所有ssh-*命令都是有效的,(bash可以作为程序执行),但openssh包没有安装。)

其他回答

这恰好发生在我身上,因为我在非管理员Powershell中运行该命令。使用管理权限运行它可以解决这个问题

在这里添加,如果你有这个问题,并在PowerShell中运行start-ssh-agent,它将“切换”到cmd(而不是PowerShell)功能,直到你退出由上一个命令启动的批处理作业。 如果你不这样做,你就不能再访问PowerShell函数,并将得到如下错误:' get - service '不能被识别为内部或外部命令、可操作的程序或批处理文件

是的,正如其他人所建议的,这个错误似乎意味着ssh-agent已经安装,但它的服务(在windows上)还没有启动。

你可以通过运行Windows PowerShell来检查:

> Get-Service ssh-agent

然后检查输出状态是否运行。

Status   Name               DisplayName
------   ----               -----------
Stopped  ssh-agent          OpenSSH Authentication Agent

然后通过运行检查该服务是否已禁用

> Get-Service ssh-agent | Select StartType

StartType
---------
Disabled

我建议将服务设置为手动启动。这意味着只要运行ssh-agent,它就会启动服务。您可以通过Services GUI或在管理模式下运行该命令:

 > Get-Service -Name ssh-agent | Set-Service -StartupType Manual

或者,如果您愿意,也可以通过GUI进行设置。

我在Cygwin中得到了同样的错误。我必须在Cygwin安装程序中安装openssh包。

(奇怪的是,所有ssh-*命令都是有效的,(bash可以作为程序执行),但openssh包没有安装。)

我通过Set-Service ssh-agent -StartupType Manual将ssh-agent的StartupType更改为Manual解决了这个问题。

然后我可以通过start - service ssh-agent或ssh-agent.exe启动服务。