假设我在 GitLab 中有一些私人项目。
要从我的本地计算机访问该项目,我:
- 生成 ssh 密钥对。
- 将公钥添加到我的帐户 (mygitlab.com/-/profile/keys)。
git clone [email protected]:mygroup/myproject.git
在本地机器上执行。- 工作。
然后我想将我的项目部署在远程生产服务器上1.2.3.4
。理想情况下,我只想ssh
进入该服务器,克隆我的项目,然后git pull
每次我想要更新生产部署时都执行此操作。但我无法从生产服务器访问我的存储库,因为 中没有 ssh 密钥1.2.3.4:/home/www-data/.ssh/
,所以如果我尝试这样做git clone
,或者git pull
我会收到Permission denied
错误。
在这种情况下我该怎么办?
从我看来,我应该能够在生产服务器上生成 ssh 密钥对并将公钥添加到我的项目中。但是没有办法将公钥与项目关联 - 只能与帐户关联。我不想将生产服务器的公钥与我的帐户相关联,因为它在方法上是错误的 - 我们团队中有很多开发人员,而生产服务器没有以任何特殊方式与我关联。
就像你说的,你应该
generate ssh keypair on production server and add public key to my project
进入存储库,然后在左侧设置->存储库,然后在中间有“部署密钥”。将公钥粘贴到部署密钥中并选择唯一的名称。之后,您可以使用该密钥进行克隆。还有文档https://docs.gitlab.com/ee/user/project/deploy_keys/。