且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在Windows上使用git和ssh-agent

更新时间:2023-11-17 08:19:16

posh-git git for windows 2.7 应该包含设置 ssh-agent 所需的一切。一旦你安装了模块,你可以使用类似的方式启动代理:

  Import-Module〜\Documents\WindowsPowerShell\\ \\Modules\posh-git\posh-git的
组锯齿的ssh-agent $ ENV:ProgramFiles\git\usr\bin\ssh-agent.exe
套装 - 别名ssh-add$ env:ProgramFiles \git\usr\bin\ssh-add.exe
Start-SshAgent -Quiet

然后你应该看到SSH_AUTH_SOCK环境变量设置为:

  C :\代码\ Go\src\bosun.org\cmd\scollector [master]> GCI ENV:SSH_AUTH_SOCK 

名称值
---- -----
SSH_AUTH_SOCK /tmp/ssh-6ORcVQvRBZ2e/agent.11668

运行命令时,git-plus atom包应该能够使用哪个。我可以使用Ctrl + Shift + H调出atom中的git菜单,选择push,然后推送到远程repo(如果失败,不会显示错误,但我推送的新分支在那里) 。

在打开atom之前,需要启动ssh-agent,以便设置SSH_AUTH_SOCK环境变量。如果它仍然不起作用,您可能需要在PowerShell中测试ssh以验证它可以不使用密码连接: -Alias ssh$ env:ProgramFiles \git\usr\bin\ssh.exe
ssh主机名


I'm on Windows. I installed git and posh-git (some helpers for Windows PowerShell). I can add keys with ssh-add and can authenticate with github and my webserver. I can also use git from the PowerShell to interact with my repositories.

But there is one thing I can't do: I use git-plus for the Atom editor. And I don't get it to push to my repo. What is my problem?

posh-git and git for windows 2.7 should include everything you need to setup an ssh-agent. Once you have the module installed you can start the agent using something like:

Import-Module ~\Documents\WindowsPowerShell\Modules\posh-git\posh-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"
Start-SshAgent -Quiet

You then should see the SSH_AUTH_SOCK environmental variable is set:

C:\Code\Go\src\bosun.org\cmd\scollector [master]> gci env:SSH_AUTH_SOCK

Name                           Value
----                           -----
SSH_AUTH_SOCK                  /tmp/ssh-6ORcVQvRBZ2e/agent.11668

Which the git-plus atom package should be able to use when you run commands. I was able to use Ctrl+Shift+H to bring up the git menu in atom, select push, and then push to a remote repo (not it doesn't display errors if it fails, but the new branch I pushed was there).

The ssh-agent needs to be started BEFORE you open atom so that the SSH_AUTH_SOCK environmental variable is set. If it still doesn't work you may want to test ssh in PowerShell to verify that it can connect without a password:

Set-Alias ssh "$env:ProgramFiles\git\usr\bin\ssh.exe"
ssh hostname