我有一个谷歌计算引擎实例,我想在其上设置一个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操作系统。所以诀窍是将id_rsa.*
中的C:\Users\USERNAME\.ssh
(pub和ppk)文件复制到C:\Users\USERNAME\git\.ssh
的git目录中。
有了这一切,一切都很完美。
答案 0 :(得分:1)
我发现了背后的伎俩。实际上我用来克隆项目的机器是运行Windows 8操作系统。所以诀窍是将id_rsa.*
中的C:\Users\USERNAME\.ssh
(pub和ppk)文件复制到C:\Users\USERNAME\git\.ssh
的git目录。
有了这一切,一切都很完美。