【发布时间】:2014-02-22 14:15:23
【问题描述】:
我正在使用 node.js,我正在尝试在 Web 浏览器中嵌入控制台以在远程服务器中工作。 Web 应用程序执行连接,因此用户无需执行ssh username@host,只需键入命令即可。
我已经尝试过 node.js 的 ssh2 模块和其他使用 ssh2 的模块。但我总是遇到同样的问题。每次我使用exec() 以编程方式执行命令时,ssh 会话都会重新启动。我会用一个例子更好地解释它。
> ls
返回主目录的内容,主目录中的目录之一是mydir
> cd mydir
> ls
再次返回我的主目录的内容,因为在执行命令后 ssh 会话被关闭/重新启动。
任何可以完成这项工作的 node.js 库?甚至是不同于 javascript 的其他技术库?
编辑: 其他澄清示例,使用 node.js 的模块 ssh-exec
服务器必须使用 ssh 在其他机器上执行一些命令。服务器中的一个函数包含以下代码
var c = exec.connection('username@host.com'); // It takes the ssh key from the default location
exec('cd mydir', c).pipe(process.stdout);
exec('ls -lh', c).pipe(process.stdout);
如您所见,我并没有在第一个exec 之后结束连接,但我获得的输出是主目录的内容而不是 mydir 目录的内容,因为在每个exec 之后都会重置 ssh 会话。
【问题讨论】:
标签: javascript node.js shell ssh