Node.js的SSH客户端
有没有一个SSH客户端node.js我可以用来与服务器通信?
如果您需要使用密码进行login,Node.jssubprocess将不会执行,因为OpenSSH客户端不会从stdin读取密码,而是从伪terminal读取密码。
你可以通过使用pty.js来解决这个问题 :
var pty = require("pty.js"); var term = pty.spawn("ssh", ["username@localhost", "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密钥对。
以下是另外两个选项:
- NodeSSH客户端
- 节点控制
客户端是非常坚实和基本的一般使用。 节点控制更适合并行,asynchronous控制许多机器(即系统pipe理工作)。
就像在早先的问题中使用sftp 一样 ,也可以通过subprocess使用ssh客户端。