首页 > 解决方案 > 如何使用 ssh2-promise 制作交互式 shell

问题描述

我正在尝试创建一个交互式 ssh 会话,我可以在其中发送 bash cmds 并取回结果。

以下作品:

var SSH2Promise = require('ssh2-promise');

var sshconfig = {
  host: '192.168.1.142',
  username: 'root',
  password: 'pass'
}
var ssh = new SSH2Promise(sshconfig);

ssh.connect().then(() => {console.log("Connection established")})

但我真正想做的是:

var ssh_socket
ssh.shell().then((socket) => {
  ssh_socket = socket
  socket.on('data', (data) => {
  console.log("ssh data: " + data)
})
socket.write("echo ssh shell connected\n")
})

ssh_socket.write("ls\n")

我对 ssh.shell 的调用什么也没显示,但我希望看到

"ssh data: ssh shell connected"

在控制台中。此外,在这个初始化之后,我希望能够发送许多命令,a la

ssh_socket.write("ls\n")

并查看他们的结果。

标签: javascriptshellssh2

解决方案


推荐阅读