【问题标题】:PM2 deployment permissions deniedPM2 部署权限被拒绝
【发布时间】:2018-05-28 00:15:59
【问题描述】:

当我运行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"
      ]
    }

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

【问题讨论】:

  • 您的PasswordAuthentication 值在您的框中的/etc/ssh/sshd_config 中说明了什么?
  • 我已将其设置为否:PasswordAuthentication no
  • PM2 doc 是怎么说的?如果没有,您是否尝试过翻转它?
  • 我不想要密码。 PM2 文档建议关闭密码。我已经做到了。你用过 pm2 还是熟悉它?
  • 我确实使用 PM2 但不用于部署。我试图查看问题是否与 PM2 无关,而只是通用的 permission denied 错误,因为当我遇到该错误时,我通过打开 PasswordAuthentication 来修复它

标签: node.js git github ssh pm2


【解决方案1】:
Enter passphrase for key '/Users/spongebob/.ssh/dev.pub':

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

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

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

【讨论】:

  • 绝对是公钥。在文档中这么说pm2.keymetrics.io/docs/usage/deployment/#using-ssh-keys
  • 是的,我确定这是一个公钥。正如我解释的那样,它不是正确使用的文件。
  • 文档声明使用公钥。你是说文档不正确?
  • 我的意思是,如果您收到 xxx.pub 文件的密码提示,那么您使用了错误的文件。该提示与尝试向服务器进行身份验证的客户端相关联,并且服务器此时需要私钥文件,而不是公钥文件。公钥文件(扩展名为 .pub)在任何情况下都不受密码保护。
  • 你错了。我尝试了您的建议并得到完全相同的错误。这不是问题。你使用 PM2 部署吗?
猜你喜欢
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2021-07-27
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
相关资源
最近更新 更多