PM2部署权限被拒绝

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PM2部署权限被拒绝相关的知识,希望对你有一定的参考价值。

当我运行pm2 deploy development setup时,我收到以下错误。这很奇怪,因为此密钥没有设置密码。

Enter passphrase for key '/Users/spongebob/.ssh/dev.pub':
Permission denied (publickey,keyboard-interactive).

  setup paths failed

Deploy failed

我创建了一个没有密码的密钥对,并将其转移到我的开发机器,如下所示:

ssh-copy-id -i ~/.ssh/virtualbox_dev -o "IdentityFile /Users/spongebob/.ssh/dev" -f dev@192.168.0.17

我可以在没有密码的情况下登录SSH:

ssh -o 'IdentityFile /Users/spongebob/.ssh/dev' 'dev@192.168.0.17'
Last login: Sun May 27 12:39:57 2018 from 192.168.0.11

我已将此密钥添加为Github的部署密钥,因为这是一个私有仓库(并且还添加了virtualbox_dev密钥)。并测试它是否有效......

Hi MyUsername/blue-mask-api! You've successfully authenticated, but GitHub does not provideshell access.

这是我的部署配置(我在package.json中有这个):

"deploy": {
    "development": {
      "key": "/Users/spongebob/.ssh/dev.pub",
      "user": "dev",
      "host": "192.168.0.17",
      "ref": "origin/master",
      "path": "/home/dev/",
      "repo": "git@github.com:MyUsername/blue-mask-api.git",
      "post-deploy": "echo 999999999999",
      "ssh_options": [
        "StrictHostKeyChecking=no",
        "PasswordAuthentication=no"
      ]
    }

这令人困惑,因为它要求输入密码并且没有一套。当我把它留空时,我仍然被许可拒绝。

答案
Enter passphrase for key '/Users/spongebob/.ssh/dev.pub':

您似乎正在尝试使用错误的密钥文件。扩展名为“.pub”的文件是公钥文件。没有“.pub”扩展名的相应文件是私钥文件。当您运行ssh客户端以连接到远程服务器时,您必须将私钥文件提供给ssh客户端。公钥文件的内容存储在服务器上(在本例中为github),ssh服务器软件使用它来确认可以接受此密钥进行身份验证。

你应该有一个与公共文件同名的私钥文件,除了没有“.pub”扩展名:

"development": {
  "key": "/Users/spongebob/.ssh/dev",
                                ^^^--note no .pub

以上是关于PM2部署权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

部署失败,bin/yarn:权限被拒绝

EACCES:Elastic Beanstalk 部署的权限被拒绝

将 Laravel 部署到 Elastic Beanstalk:“无法打开流:权限被拒绝”

在 azure 上部署 React Web 应用程序的权限被拒绝

权限被拒绝 django 静态文件

tomcat:部署:“无法调用 Tomcat 管理器:连接被拒绝”