首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >等待输入的节点、SSh2服务器

等待输入的节点、SSh2服务器
EN

Stack Overflow用户
提问于 2016-03-24 12:31:36
回答 1查看 441关注 0票数 0

我目前正在构建一个基于Web的SSH客户端。我使用node和SSH2模块来连接Linux机器。问题是试图确定服务器何时在等待来自客户端的响应,即"sudo“。

代码语言:javascript
运行
复制
 this.onWsMessage = function(packet) {
    log('Message Received from ');
    if (cmd != '') {
      log('----------------------------------------->' + cmd);
      source[this.getId()].sshStream.write(cmd + '\n');
    }

  };

 var client = clients[cid];
sshClient
  .on('ready', function() {
    console.log('CONNECTED');
    sshClient.shell({pty: true}, function(err, stream) {
      _shellHandler(err, stream, client);
    });
  })
  .on('error', function(err) {
    console.log('ERROR', err);
  })
  .connect(serverInfo);
  }

function _shellHandler(err, stream, client) {
source[client.getId()].sshStream = stream;
stream
  .on('close', function() {
    log('ssh connection close');
    //sshClient.end();
    this._client.end();
  })
  .on('data', function(data) {
    console.log(stream);
    var msg = data.toString().replace(msgPattern, '');
    this.sendUTF(msg, 'ssh');

  }.bind(client));


  }

我一直在浏览文档,但我无法识别任何触发事件的结果。

EN

回答 1

Stack Overflow用户

发布于 2016-03-24 13:31:35

没有简单的方法可以做到这一点。基本上,您必须缓冲流输出并不断地在缓冲区中搜索预期的(sudo)提示,或者使用像streamsearch这样的模块在流中搜索特定的字符串,而无需显式地缓冲和持续搜索。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36193330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档