在Windows上使用git和ssh-agent

时间:2016-01-06 16:55:25

标签: git powershell ssh atom-editor ssh-agent

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

但有一点我无法做到:我使用git-plus作为Atom编辑器。而且我没有把它推到我的回购。我的问题是什么?

3 个答案:

答案 0 :(得分:34)

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

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

在打开atom之前需要启动ssh-agent,以便设置SSH_AUTH_SOCK环境变量。如果它仍然不起作用,您可能希望在PowerShell中测试ssh以验证它可以在没有密码的情况下连接:

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

答案 1 :(得分:3)

您可以在Powershell中使用Git for Windows随附的命令来运行ssh-agent:

 start-ssh-agent.cmd

这将启动ssh-agent。

然后您可以使用添加密钥

 ssh-add ~/.ssh/namneOfPrivateKey

在这里发现:https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops

答案 2 :(得分:0)

几年以来,ssh 部分已经从 posh-git 中分离出来,现在可以通过 posh-sshell 使用。

安装:

PowerShellGet\Install-Module posh-sshell -Scope CurrentUser
PowerShellGet\Install-Module posh-git -Scope CurrentUser

在您的 ps1 文件中:

Import-Module posh-git
Import-Module posh-sshell
Start-SshAgent

它应该会自动获取您的 ~/.ssh 中的任何密钥文件。