node.js - 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
推荐阅读
- amazon-web-services - 如何确定公有子网和私有子网以及 VPC 的 CIDR 块?
- npm - 错误:找不到模块“../lib/cli.js”
- azure - 注册后如何为 Azure AD B2C 用户设置信息?
- visual-studio-code - VSCode 扩展:保存和恢复选项卡组
- firebase - 使用 Firebase 'Run Subscription Payments with Stripe' 扩展购买多个订阅
- vowpalwabbit - 上下文强盗的算法(又名 UCB 在哪里?)
- flutter - 如何使底部导航项在顶部颤动中对齐
- hololens - 当 GaxePointer 始终打开时获取 GazeProvider.GazeTarget
- android - 如何使用 Retrofit 将 aes 加密的多部分实体文件和参数发送到服务器?
- css - 我试图设置位置:粘性;但它什么也没做?