Windows上的Git - 如何在Linux上使用远程仓库进行身份验证

时间:2013-04-17 17:38:38

标签: windows git ssh

由于Windows上的Git仓库存在一些严重问题,我们正在将我们的Git'服务器'移植到Linux。

假设我已经安装了msysgit for Windows和Putty,那么在克隆,拉取和推送时如何验证SSH连接?

3 个答案:

答案 0 :(得分:3)

如果是SSH:

  • 在服务器上,您需要允许使用公钥和私钥进行身份验证,您可以谷歌如何执行此操作,例如http://shapeshed.com/setting_up_git_for_multiple_developers/
  • 在客户端上,只需将您的私钥放入Windows主页的.ssh文件夹中,例如C:\Users\Name\.ssh,就像在unix上一样。

您仍然可以使用HTTP,它将(1)始终询问用户名和密码,或者(2)您还可以将用户名和密码放入网址:https://username:password@git.mydomain.com/...

答案 1 :(得分:2)

This page涵盖了使用PuTTy进行Git公钥认证的所有内容。 简而言之:

  • 使用puttygen生成密钥对
  • 将公钥放入服务器
  • 在本地计算机中,将GIT_SSH环境变量设置为指向plink.exe
  • 运行putty pageant并在那里加载私钥

答案 2 :(得分:0)

我建议您完成this tutorial

需要注意的是,它是关于github的,所以告诉服务器你的SSH密钥的故事是不同的。

您还打算如何管理开发人员,这也有所不同。 “问题”是SSH与真正的远程(服务器端,我的意思)用户一起运行,这些用户必须拥有常规的Unix系统帐户。

如果您只有少数开发人员,这没关系。然后,您只需要将它们全部添加到一个特殊组(例如devel),并确保使用git init --bare --shared=group初始化服务器端裸存储库,并使它们成为可写组并属于该组devel(也可以通过在"group sticky bit" set并且属于该组devel的目录下创建所有存储库来帮助解决这个问题。

要在这样的设置中将开发人员密钥的公共部分分发到服务器,您必须将该关键部分(从开发人员的id_rsa.pub文件,它的ASCII)复制并粘贴到文件{{1}文件。如果该文件不存在,请创建它。 如果密钥是在安装了OpenSSH客户端的计算机上生成的,则可以一步使用/home/developer/.ssh/authorized_keys程序传输密钥。

这可能会变得混乱,因此您可能会考虑实施一个虚拟化Git用户的解决方案(如github)。有很多可供选择:

  • gitolite - 据说是最受欢迎的解决方案。没有多余的装饰,使用专门的管理员Git repo来管理开发人员的公钥和配置文件来描述他们的回购和权限。普通Perl,可安装在最明智的发行包上。
  • gitlab - 一个交钥匙的一体化解决方案。用Ruby写的,所以你可能会面临维护噩梦。
  • gitblit - 用纯Java编写的另一个一体化解决方案(请注意,它不会调用vanilla Git并使用纯Java Git层 - JGit)。