You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PM2 Deploy部署至远程服务器时GitLab私有仓库访问失败求助

解决pm2 deploy时GitLab仓库无法克隆的问题

看起来你遇到的核心问题是:pm2部署是在远程服务器上执行Git克隆操作,而不是在本地。你本地能SSH到远程服务器,不代表远程服务器本身拥有访问GitLab私有仓库的权限。错误提示"GitLab: The project you were looking for could not be found."本质是远程服务器的SSH身份没有被GitLab识别,或者仓库地址有误。

下面是一步步的排查和解决步骤:

1. 先在远程服务器上直接测试Git克隆权限

登录到你的远程服务器,执行以下命令,模拟pm2的克隆操作:

git clone git@gitlab.com:MyGitlabOrg/myproject.git

如果同样出现和部署时一样的错误,那可以确定是远程服务器的SSH密钥没有配置到GitLab。

2. 为远程服务器配置GitLab部署密钥

这是最常见的解决方案:

  • 在远程服务器上生成新的SSH密钥(如果还没有的话):
    ssh-keygen -t ed25519 -C "your-work-email@example.com"
    
    按回车使用默认路径,不需要设置密码(或者根据需求设置)。
  • 查看生成的公钥内容:
    cat ~/.ssh/id_ed25519.pub
    
    复制输出的全部内容。
  • 登录GitLab,进入你的项目页面 → 点击左侧菜单栏的Settings → Repository → 找到Deploy keys选项 → 点击Add deploy key。
  • 粘贴刚才复制的公钥内容,给密钥起个名字(比如"Production Server SSH Key"),如果需要推送权限的话勾选"Allow write access",最后点击Add key保存。

3. 验证远程服务器到GitLab的SSH连接

在远程服务器上执行以下命令,确认SSH连接正常:

ssh -T git@gitlab.com

如果返回Welcome to GitLab, @YourUsername!,说明权限配置成功了。

4. 检查pm2配置的细节

  • 确认repo字段的仓库地址完全正确,GitLab的仓库地址是区分大小写的,比如MyGitlabOrg和mygitlaborg是不同的。
  • 检查user字段是远程服务器的正确用户名,确保该用户的.ssh目录权限正确:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_ed25519
    chmod 644 ~/.ssh/id_ed25519.pub
    

备选方案:改用HTTPS仓库地址

如果SSH配置实在麻烦,可以换成HTTPS协议的仓库地址:

  • 把repo字段改成:
    repo: 'https://gitlab.com/MyGitlabOrg/myproject.git'
    
    部署时pm2会提示你输入GitLab的用户名和密码。
  • 或者使用GitLab个人访问令牌(更安全,适合自动化部署),格式如下:
    repo: 'https://<你的个人访问令牌>@gitlab.com/MyGitlabOrg/myproject.git'
    
    个人访问令牌可以在GitLab的Settings → Access Tokens里生成,勾选read_repository权限即可。

完成以上步骤后,再重新执行pm2部署命令:

pm2 deploy ecosystem.config.js development setup

内容的提问来源于stack exchange,提问作者DeepSiderZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:56:48