所以我在GitHub(https://github.com/Unitech/pm2/issues/4072)上创建了一个问题,因为我可以肯定这是他们的问题,但我想我也想在这里问一下,以防万一愚蠢的。
因此,基本上,我们有一个带某些回购协议的Bitbucket团队(该团队拥有该回购协议)。我们想在带有PM2的服务器上部署仓库。因此,我们在团队中设置了一些SSH密钥,然后将它们复制到服务器上。
这是我们的配置(显然已删除了一些信息);
module.exports = {
apps : [{
name: 'project-name',
script: './project/dist/app.js',
instances: 2,
exec_mode: 'cluster_mode',
autorestart: true,
watch: false,
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}],
deploy: {
production: {
key: '~/.ssh/id_rsa.pem',
user: 'root',
host: 'ip',
ref: 'origin/master',
repo: 'git@bitbucket.org:team/repo.git',
path: '/var/www/project',
'post-deploy': 'yarn install && yarn build && pm2 startOrRestart ecosystem.js.config — env production',
'pre-deploy-local' : 'echo \'Deploying code to servers\'',
}
}
};
因此,使用此配置,在执行部署设置时,它会要求提供SSH密钥密码(以确保可以找到正确的密钥),但是随后出现此消息并出错。
git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我们绝对可以确定服务器上的密钥是与github存储库上的密钥相对应的密钥,并且如果我们使用该密钥进行常规的git clone,那么它可以正常工作。
有人有任何建议吗,或者有人可以发现我们正在做的任何事情显然是错误的?
谢谢。