【问题标题】:Git on Windows - How to authenticate with remote repo on LinuxWindows 上的 Git - 如何在 Linux 上使用远程仓库进行身份验证
【发布时间】:2013-04-10 14:24:29
【问题描述】:

由于基于 HTTP 的 Windows 上的 Git 存储库存在一些严重问题,我们正在将 Git“服务器”迁移到 Linux。

假设我已经安装了适用于 Windows 的 msysgit 和 Putty,我将如何在克隆、拉取和推送时验证 SSH 连接?

【问题讨论】:

    标签: windows git ssh


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我建议使用this tutorial

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

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

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

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

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

      • gitolite — 据说是最流行的解决方案。没有多余的装饰,使用专门的管理员 Git 存储库进行管理,该存储库包含开发人员的公钥和描述存储库和权限的配置文件。普通 Perl,可作为软件包安装在大多数合理的发行版上。
      • gitlab — 一站式解决方案。用 Ruby 编写,因此您可能会面临维护噩梦。
      • gitblit — 另一个用纯 Java 编写的一体化解决方案(请注意,它不调用 vanilla Git,而是使用纯 Java Git 层 — JGit)。

      【讨论】:

        【解决方案3】:

        如果是 SSH:

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

        您仍然可以使用 HTTP,它会 (1) 始终要求输入用户名和密码,或者 (2) 您也可以将用户名和密码输入 URL:https://username:password@git.mydomain.com/...

        【讨论】:

          猜你喜欢
          • 2018-05-01
          • 2022-01-17
          • 2011-07-16
          • 1970-01-01
          • 1970-01-01
          • 2021-04-06
          • 1970-01-01
          • 2018-12-19
          • 1970-01-01
          相关资源
          最近更新 更多