当我运行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 [email protected]
我可以在没有密码的情况下登录SSH:
ssh -o 'IdentityFile /Users/spongebob/.ssh/dev' '[email protected]'
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": "[email protected]: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