繁体   English   中英

从nodejs启动交互式ssh

[英]Launch interactive ssh from nodejs

我有一个包含ip,port,user和passord的文本blob,我想写一个小实用程序脚本,我可以:

  • 将文本粘贴到stdin中
  • 使用正则表达式或任何其他方法提取连接详细信息
  • 使用node以使用我的解析值以交互方式启动ssh

如何从带有参数的节点启动ssh命令,退出节点并继续ssh'ing? 我发现的关于ie child_process的文档涉及在节点内启动和控制进程,但我只想退出并在ssh启动后接管。

以下代码符合您的要求,根据您的需求进行调整。 该计划执行以下操作:

  • 从文件中读取port
  • 提示您输入主机名,从stdin读取数据
  • 使用child_process.fork启动ssh

码:

var port = require('fs').readFileSync('port.txt');

const rl = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('Enter hostname: ', (answer) => {
  require('child_process').spawn('ssh', [answer, port],
    {stdio: [process.stdin, process.stdout, process.stderr]});
});

除了以下几点之外,问题得到解答:

退出节点并继续ssh'ing

我不知道任何编程语言都有可能,但更好的答案可以纠正我。 相反,您启动子进程并将所有输入/输出重定向到它。 从您的角度来看,您只与ssh交互,因此node进程仍然作为ssh的父进程存在这一事实对您来说是透明的。

例如, perl的等效命令是system("ssh");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM