首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在nodejs中响应openssl提示

如何在nodejs中响应openssl提示
EN

Stack Overflow用户
提问于 2018-06-07 04:40:14
回答 1查看 464关注 0票数 1

我正在尝试使用openssl和node js从私钥文件中删除密码。

节点js代码为:

cmd = exec('/usr/bin/openssl', [
    'rsa',
    '-in',
    `${process.cwd()}/privkey.pem`, '-out', `/home/pratik/newPrivateKey.pem`
]);
cmd.stdin.write("password", 'utf8');

我提到了this SO问题。但在我的例子中,在控制台上,我只看到true作为输出。未创建任何文件。我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 04:52:02

您需要使用child_process.spawn,然后使用{ stdio: "inherit" }通过您的节点脚本转发它的标准输入和标准输出。

const child_process = require('child_process');
const openssl = child_process.spawn('openssl', [
  'rsa',
  '-in',
  "/Users/my_user/.ssh/my_key", '-out', "/Users/my_user/.ssh/unlocked_key"
], { stdio: "inherit" });

或者,对于非交互式版本,您不希望它提示输入密码:

const child_process = require('child_process');
const password = "somepassword";
const openssl = child_process.exec('openssl', [
  'rsa',
  '-in', "/Users/my_user/.ssh/my_key",
  '-out', "/Users/my_user/.ssh/output_key",
  '-passin', `pass:${password}`
]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50729242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档