Powershell中的Git说'找不到ssh-agent'

Kha*_*meh 97 git ssh

我安装了git,它在命令提示符下工作得很好,但是当我打开powershell时它给了我这个警告:

WARNING: Could not find ssh-agent
Run Code Online (Sandbox Code Playgroud)

我有选美运行并加载了我的私钥.这适用于所有gui工具和命令提示符,但不适用于Powershell.

这是怎么回事?

Tar*_*nin 137

对于那些寻找详细解释的人,请阅读此博客文章.以下是博客文章的引用.最终ssh-agent.exe需要在路径上,或以其他方式解决.

编辑: 似乎大多数人都不打扰阅读链接的博客,原始摘录没有引用完整的解决方案,所以我扩展了以下博客的引用.

基于对所有其他答案的喜欢,有许多方法可以解决错误.下面引用一个已知的工作方法.扫描其他答案可能更适合您.

当我重新启动PowerShell提示时,它告诉我它无法启动SSH代理.

事实证明,它无法找到"ssh-agent.exe"可执行文件.该文件位于C:\ Program Files(x86)\ Git\bin中.但msysgit不会自动将该文件夹添加到您的PATH中.

如果您不想将此路径添加到系统PATH,则可以更新PowerShell配置文件脚本,使其仅适用于PowerShell会话.这是我所做的改变.

$ env:path + =";" +(Get-Item"Env:ProgramFiles(x86)").Value +"\ Git\bin"

在我的机器上脚本位于:C:\ Users\Haacked\Documents\WindowsPowerShell\Microsoft.Powershell_profile.ps1

  • 对我来说,`ssh-agent.exe`实际上位于`\ Git\usr\bin`文件夹中. (10认同)
  • @SalmanPK:它不仅让我感到不舒服,Git维护者也明确表示不鼓励.在我的情况下,它打破了PowerShell命令行. (4认同)
  • Ugggh将此目录添加到PATH让我感到不舒服......它有各种各样的.exes,其泛型名称与Windows命令相冲突.希望有一天它不会咬我的屁股. (3认同)
  • 这应该是答案! (2认同)

bri*_*ary 53

您可以在个人资料的顶部添加两行(类型ise $profile)来修复此PoshGit问题,而不会污染您的路径.然后运行. $profile以重新加载您的个人资料.

对于32位git

Set-Alias ssh-agent "${env:ProgramFiles(x86)}\git\bin\ssh-agent.exe"
Set-Alias ssh-add "${env:ProgramFiles(x86)}\git\bin\ssh-add.exe"
Run Code Online (Sandbox Code Playgroud)

对于64位git

Set-Alias ssh-agent "$env:ProgramFiles\git\usr\bin\ssh-agent.exe"
Set-Alias ssh-add "$env:ProgramFiles\git\usr\bin\ssh-add.exe"
Run Code Online (Sandbox Code Playgroud)

  • 别忘了跑.$ profile`重新加载您的个人资料 (3认同)
  • 随着64位git 2.5(昨天发布)的出现,这些别名需要更新为指向`$ {env:ProgramFiles}\git\usr\bin \``而不是64位系统. (3认同)
  • 我尝试运行时使用New-Alias导致了问题.$ profile多次(其他更改).而是使用Set-Alias,并且效果更好. (2认同)

Kha*_*meh 17

我想到了.您需要GIT_SSH在机器上设置环境变量以指向plink.exe.这可能是与TortoiseHg/TortoiseGit/Git Extensions一起安装的,或者您可以从Putty下载页面下载,但只需确保您使用相同的系统范围.最好从Windows会话中注销,以确保为所有Explorer实例和命令窗口设置此变量.


Ahm*_*med 17

如果您正在使用posh-git并收到此警告,您可以通过注释(添加"#"符号)以下行来关闭它

Start-SshAgent -Quiet
Run Code Online (Sandbox Code Playgroud)

在文件中

Documents\WindowsPowerShell\Modules\posh-git\profile.example.ps1
Run Code Online (Sandbox Code Playgroud)

  • 另外一个额外的好处是,如果您不需要/希望获得SSH支持,并且即使添加了ssh-agent.exe PATH修复程序,您的PowerShell启动速度也非常慢,那么评论此行可以加快启动速度. (5认同)