Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在google compute engine的centos 7上设置git服务器_Git_Ssh_Google Compute Engine - Fatal编程技术网

在google compute engine的centos 7上设置git服务器

在google compute engine的centos 7上设置git服务器,git,ssh,google-compute-engine,Git,Ssh,Google Compute Engine,我有一个GoogleComputeEngine实例,我想在上面设置一个git服务器,开发者可以访问它来推拉开发源代码。 我创建了一个名为git的用户来访问存储库。然后将每个开发者的公钥添加到服务器/home/git/.ssh/authorized_keys文件中 下面是我发布的用于执行上述操作的配置 $ useradd –m /home/git –s /usr/bin/git-shell git 在服务器上安装git $ yum install git -y 为用户配置ssh授权 $ cd

我有一个GoogleComputeEngine实例,我想在上面设置一个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密钥附加到服务器上的授权密钥文件中

$ yum install git -y
为代码创建一个裸存储库

$ 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的home dir中,它仍然不起作用

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

解决方案


我发现了背后的诡计。实际上,我用来克隆项目的机器运行的是Windows8操作系统。因此,诀窍是将
C:\Users\USERNAME\.ssh
中的
id\u rsa.*
(pub和ppk)文件复制到位于
C:\Users\USERNAME\git\.ssh
的git目录


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

我发现了背后的诀窍。实际上,我用来克隆项目的机器运行的是Windows8操作系统。因此,诀窍是将
C:\Users\USERNAME\.ssh
中的
id\u rsa.*
(pub和ppk)文件复制到位于
C:\Users\USERNAME\git\.ssh
的git目录


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