2016-01-06 107 views
10

我在Windows上。我安装了git和posh-git(用于Windows PowerShell的一些帮助程序)。我可以使用ssh-add添加密钥,并且可以使用github和我的网络服务器进行身份验证。我还可以使用PowerShell中的git与我的存储库进行交互。在Windows上使用git和ssh-agent

但有一件事我不能做:我使用git-plus来编辑Atom。我没有把它推到我的回购。我的问题是什么?

+0

见http://haacked.com/archive/2011/12/19/get- git-for-windows.aspx /有关让ssh代理在posh-git中工作的详细信息 –

回答

14

posh-gitgit for windows 2.7应该包括设置ssh-agent所需的一切。一旦你已经安装的模块,您可以使用类似启动代理:

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 

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

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

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

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

在打开atom之前,需要启动ssh-agent,以便设置SSH_AUTH_SOCK环境变量。如果仍然不工作,你可能想在PowerShell中测试ssh来验证它可以不用密码连接:

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

是的,SSH_AUTH_SOCK变量已设置。此外连接没有从Atom和git-plus内部工作的无保护密钥。代理正在运行,身份被导入。我可以与ssh建立连接,但git-plus不能与受保护的密钥一起使用。 – LuMa

+0

受保护的密钥是什么意思? –

+0

受密码保护的密钥。例如,我在GitHub文档之后创建一个密钥:https://help.github.com/articles/generating-ssh-keys/创建密钥(id_rsa),使用密码保护并将其添加到ssh代理。然后我将它添加到GitHub和我的网络服务器。现在我可以使用PowerShell,cd进入我的本地项目,并在不输入密钥的密码的情况下进行推/拉。即使使用SSH连接到我的网络服务器的作品。但是,git-plus不起作用。只有当我从密钥中删除密码(使用'ssh-keygen -p')时,git-plus才会执行它的工作。那么为什么不使用gsh-plus使用ssh-agent? – LuMa