在 Ubuntu 服务器上从多个用户进行 Git 克隆、推送和拉取

在 Ubuntu 服务器上从多个用户进行 Git 克隆、推送和拉取

背景

我有一台Linode安装了 as 操作系统的服务器Ubuntu 16.04。该服务器供我的内部团队使用。我们的代码库托管在 github、bitbucket 和 gitlab 上。只有服务器管理员才有权访问该服务器。

我们已经ssh keys为所有用户生成了文件,将它们添加到 git 提供者中,并克隆了仓库

问题陈述

每当我在服务器上执行 git pull 时,它总是要求输入主密钥文件的主密码

Enter passphrase for key '/root/.ssh/id_rsa': 

当我输入密码时,它会显示Permission denied error

在此处输入图片描述

答案1

您应该生成一个无密码的密钥对(当 ssh-keygen 要求输入密码时,只需按 [enter] 键)。如果服务器只执行拉取操作,您可能希望将其权限限制为存储库端的“只读”,这样如果密钥被泄露,就不会允许某人破坏您的存储库或更糟的是在您的代码中添加后门。

如果问题在于您有多个密钥(github,bitbucket 和 gitlab 各一个),而 git 只使用一个,那么您需要做的是设置 ~/.ssh/config 以为每个服务器指定不同的密钥:

Host github.com
IdentityFile ~/.ssh/id_rsa_github
User someuser

但即使在这种情况下,您也需要无密码密钥。

相关内容