javascript – 通过Node.js使用SSH

前端之家收集整理的这篇文章主要介绍了javascript – 通过Node.js使用SSH前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在node.js中运行一个ssh子进程,并通过我的程序来控制它.我的代码
var util   = require('util');
var spawn = require('child_process').spawn;
var ssh    = spawn('ssh',['cloudstudios.ch']);

ssh.stdout.on('data',function (data) {
  console.log('stdout: ' + data);
});

ssh.stderr.on('data',function (data) {
  console.log('stderr: ' + data);
});

ssh.on('exit',function (code) {
  console.log('child process exited with code ' + code);
});

我可以在控制台输入密码,但是我不能做任何事情.我得到以下控制台输出

stderr: Pseudo-terminal will not be allocated because stdin is not a terminal.

root@xxxxxxxxxxxxx.xx's password:
stdout: Linux v 2.6.32-5-xen-amd64 #1 SMP Wed Jan 12 05:46:49 UTC 2011 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY,to the extent
permitted by applicable law.

stderr: stdin: is not a tty

有人有一个想法,我怎么能得到这个工作?

谢谢!

解决方法

尝试一点修改

var ssh = spawn(‘ssh’,[‘-tt’,’xxx’]);

和:

process.stdin.resume();
process.stdin.on('data',function (chunk) {
  ssh.stdin.write(chunk);
});

猜你在找的JavaScript相关文章