Node.js的SSH客户端

44

有没有适用于node.js的SSH客户端,可以用来与服务器通信?

4个回答

39

3
确实有效。 我可以通过ssh登录到我的思科路由器并执行命令。 - catamphetamine
你认为这个包装器 https://github.com/steelbrain/node-ssh 怎么样? - Steel Brain

17

如果需要使用密码进行登录,则 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密钥对。


12

以下还有两个选项:

NodeSSH客户端非常可靠,适用于一般用途。 Node-control更适合在许多机器上进行并行、异步控制(例如系统管理员工作)。


6
你有没有注意到我的昵称是网址的一部分?^^客户端代码是我自己的。 - Van Coding
5
@VanCoding 哈哈,当有人回复你写的话时,总是很有趣。 - Harry
3
你的问题的目的是什么,如果你已经写了这个呢? - Nick

3

好的,我会用那个试试。谢谢! - Van Coding
2
爬取命令行工具虽然可行,但是接口非常脆弱。一个真正的NPM模块会更加可靠。 - mikemaccana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接