有没有适用于node.js的SSH客户端,可以用来与服务器通信?
https://github.com/mscdex/ssh2
我推荐你也查看这个包装器
如果需要使用密码进行登录,则 Node.js 子进程无法胜任,因为 OpenSSH 客户端并不会从标准输入读取密码,而是从一个伪终端读取。
您可以通过使用 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客户端非常可靠,适用于一般用途。 Node-control更适合在许多机器上进行并行、异步控制(例如系统管理员工作)。