2011-03-03 112 views

回答

2

很像sftp在your earlier question,你也許可以通過child process使用ssh客戶端。

+0

好的,我會用它試試那。謝謝! – 2011-03-07 07:52:13

+2

刮刮命令行工具的作品,但是是一個非常脆弱的界面。實際的NPM模塊將更加可靠。 – mikemaccana 2012-05-11 09:41:44

12

這裏有另外兩個選項:

客戶是非常穩固和基本用於一般用途。節點控制更適合於對許多機器進行並行異步控制(即系統管理工作)。

+6

你有沒有注意到我的暱稱是URL的一部分? ^^客戶端代碼是我的。 – 2011-04-14 12:46:04

+4

@VanCoding哈哈哈哈。當有人用你寫的東西回答時總是很有趣。 – Harry 2012-05-11 22:17:49

+2

@VanCoding - 如果你已經寫過這個,你的問題的目的是什麼? – theoutlander 2015-12-24 14:46:41

14

如果您需要使用密碼進行登錄,Node.js子進程將不會執行,因爲OpenSSH客戶端不會從stdin讀取密碼,而是從僞終端讀取密碼。

您可以解決此通過使用pty.js

var pty = require("pty.js"); 
var term = pty.spawn("ssh", ["[email protected]", "whoami"]); 

term.on("data", function(data) { 
    console.log("Incoming: " + data.toString()); 
}); 

// Wait a sec before sending the password. For proper implementation 
// you should wait for the password prompt. 
setTimeout(function(){ 
    term.write("mypassword\n"); 
}, 1000); 

這是說,你應該總是使用SSH密鑰對這種可能的話。