我已经使用" Click to Deploy"在Google Compute Engine上安装了GitLab。从项目界面。几分钟后部署成功。我可以通过SSH进入实例,并按预期粘贴它。
我也可以使用Web界面登录GitLab,并将SSH密钥添加到我的个人资料中。到现在为止还挺好。但是,当我尝试推送或拉到新的示例存储库时,我收到此消息:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我已删除了我的本地SSH配置,因此它不会干扰。我是否需要设置某种类型的SSH隧道?我错过了什么?
更新:清除我的本地〜/ .ssh文件夹,并重新生成SSH密钥(我已将其添加到GitLab中的个人资料中)会产生以下错误:
Received disconnect from {GITLAB_IP_ADDRESS}: 2: Too many authentication failures for git
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
更新2: GitLab似乎已经有了解决方案:运行sudo gitlab-ctl reconfigure
。见这里:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#git-ssh-access-stops-working-on-selinux-enabled-systems
答案 0 :(得分:7)
您需要创建一个SSH隧道以与GitLab通信。
ssh-keygen -t rsa
按照步骤操作,并创建一个密码(您可以记住),因为您需要将密码从GitLab拉入/推送到GitLab。
cat id_rsa.pub
复制该命令的输出(包括ssh-rsa
),并将其添加到您的GitLab配置文件中。 (http://my-gitlab-server.com/profile/keys/new)。
确保您至少是角色开发人员。 (屏幕角色:http://i.stack.imgur.com/DSSvl.jpg)
进入你的项目,找到右上方的SSH链接;
导航到您想要工作的目录,然后运行以下命令;
$ git init
$ git remote add origin <<project_url>>
$ git fetch
其中<<project_url>>
是我们在步骤4中复制的链接。
系统会提示您输入密码(这是您的密码,而不是服务器密码),并将主机添加到known_hosts
文件中。之后,该项目将开始下载,您可以享受开发。
我在使用Digital Ocean的CentOS 6.4机器上完成了这些步骤。但它们与使用Google CE无异。
解决了!感谢@sxleixer和@Alexander Wenzowski解决这个问题。
显然,SELinux正在干扰.ssh目录的非标准位置。我需要在Compute Engine实例上运行以下命令:
sudo yum -y install policycoreutils-python # Install the `semanage` tool
sudo semanage fcontext -a -t ssh_home_t "/var/opt/gitlab/.ssh/authorized_keys" # Allow the nonstandard ssh_home_t
请参阅此处的完整主题:
Google Cloud Engine. Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
答案 1 :(得分:3)
解决了!感谢@sxleixer和@Alexander Wenzowski来解决这个问题。
显然,SELinux正在干扰.ssh目录的非标准位置。我需要在Compute Engine实例上运行以下命令:
sudo yum -y install policycoreutils-python # Install the `semanage` tool
sudo semanage fcontext -a -t ssh_home_t "/var/opt/gitlab/.ssh/authorized_keys" # Allow the nonstandard ssh_home_t
请参阅此处的完整主题:
Google Cloud Engine. Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
更新: GitLab似乎已经有了解决方案:运行sudo gitlab-ctl reconfigure
。见这里:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#git-ssh-access-stops-working-on-selinux-enabled-systems
答案 2 :(得分:0)
在我的情况下,git用户没有完全设置。如果您在日志文件中输入消息,例如“因为帐户被锁定而不允许用户git”(在Centos或Redhat下是/ var / log / secure),而只需要通过“passwd -d git”激活用户< / p>