我正在尝试使用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
作为输出。未创建任何文件。我错过了什么?
发布于 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}`
]);
https://stackoverflow.com/questions/50729242
复制相似问题