【问题标题】:setting up git server on centos 7 in google compute engine在谷歌计算引擎的centos 7上设置git服务器
【发布时间】:2015-12-23 23:29:18
【问题描述】:

我有一个 google 计算引擎实例,我想在该实例上设置一个 git 服务器,开发人员可以访问该服务器来推送和拉取开发源代码。 我创建了一个名为git 的用户来访问存储库。然后将每个开发者的公钥添加到服务器/home/git/.ssh/authorized_keys 文件中。

以下是我为执行上述操作而发布的配置

$ useradd –m /home/git –s /usr/bin/git-shell git

在服务器上安装 git

$ yum install git -y

为用户配置 ssh 授权

$ cd /home/git
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

将开发者 ssh 密钥附加到服务器上的 authorized_keys 文件中

为代码创建一个裸仓库

$ mkdir /opt/git/project.git
$ cd /opt/git/project.git
$ git init - -bare - -shared=group

编辑现有权限

$ chgrp -R developers .

测试配置

$ git clone ssh://git@IP_ADDRESS/opt/git/project.git

当我尝试克隆存储库时,它会发出错误:

注意:我在物理服务器上尝试了上述设置,它运行良好,不需要在系统上配置 ssh 密钥。所以我想知道它是否是计算引擎的问题。

在某些时候,我认为这是 /opt 目录的权限问题,因此我将其他人的权限修改为 read/write,但它不起作用。 此外,我还创建了一个存储库,但在用户 git 的主目录中,它仍然无法正常工作。

我需要一些帮助来解决用户 git 的身份验证问题。

解决方案

我发现了背后的诀窍。实际上,我用来克隆项目的机器正在运行 Windows 8 操作系统。所以诀窍是将C:\Users\USERNAME\.ssh 中的id_rsa.*(pub 和ppk)文件复制到C:\Users\USERNAME\git\.ssh 的git 目录中。

有了这个,一切都完美无缺。

【问题讨论】:

  • 在您的 DOS 会话中,您是否定义了 HOME? git 会在 %HOME%\.ssh 中查找您的公共/私有 ssh 密钥。
  • 您应该尝试ssh -vvv git@IP_ADDRESS 看看问题出在哪里。根据失败的阶段,您应该检查服务器错误日志是否为您提供更多信息
  • @VonC 是的,我确实有,我生成了一个密钥并将我的 dos 会话的公钥内容复制到 git 服务器上的 /home/git/.ssh/authorized_keys 文件中。
  • @Jakuje 从上面的帖子中,您可以注意到 git 用户没有启用操作系统控制台,但 git 仅按照 –s /usr/bin/git-shell
  • 那么,如果您执行dir %HOME%\.ssh,您会在该文件夹中看到您的 id_rsa(.pub) 吗?

标签: git ssh google-compute-engine


【解决方案1】:

我发现了背后的诀窍。实际上,我用来克隆项目的机器正在运行 Windows 8 操作系统。所以诀窍是将C:\Users\USERNAME\.ssh中的id_rsa.*(pub和ppk)文件复制到C:\Users\USERNAME\git\.ssh的git目录中。

有了这个,一切都完美无缺。

【讨论】:

    猜你喜欢
    • 2016-08-14
    • 2014-04-18
    • 1970-01-01
    • 2014-08-21
    • 2017-02-09
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多