2011-03-03 114 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密钥对这种可能的话。