[英]Launch interactive ssh from nodejs
我有一個包含ip,port,user和passord的文本blob,我想寫一個小實用程序腳本,我可以:
如何從帶有參數的節點啟動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.