Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点类型脚本ssh2连接已在服务器上断开[preauth]_Node.js_Typescript_Ssh_Sshd - Fatal编程技术网

Node.js 节点类型脚本ssh2连接已在服务器上断开[preauth]

Node.js 节点类型脚本ssh2连接已在服务器上断开[preauth],node.js,typescript,ssh,sshd,Node.js,Typescript,Ssh,Sshd,使用ssh2模块,使用私钥连接到服务器,我在身份验证日志中发现错误。日志如下所示 用于设置连接的代码: const Client=require('ssh2')。客户端; 常数fs=要求('fs'); const util=require('util'); const key=fs.readFileSync('/path/to/rsa_key'); const conn=新客户端(); 等待连接({ 主机:“”, 港口:22, 用户名:“”, 私钥, //@ts忽略 调试:(d)=>{ cons

使用
ssh2
模块,使用私钥连接到服务器,我在身份验证日志中发现错误。日志如下所示

用于设置连接的代码:

const Client=require('ssh2')。客户端;
常数fs=要求('fs');
const util=require('util');
const key=fs.readFileSync('/path/to/rsa_key');
const conn=新客户端();
等待连接({
主机:“”,
港口:22,
用户名:“”,
私钥,
//@ts忽略
调试:(d)=>{
console.log(util.inspect(d));
},
});
等待此消息。performTask(连接,“正常运行时间”);
异步执行任务(conn,命令){
返回新承诺((解决、拒绝)=>{
//@ts忽略
conn.exec(命令,(错误,流)=>{
if(typeof err!=“未定义”){
//出现错误时,流未定义。
console.error(`error:${err}`);
拒绝(新错误(err));
}否则{
//@ts忽略
stream.on('关闭',(代码,信号)=>{
log(`Stream::close::code:${code},signal:${signal}`);
连接端();
解决();
//@ts忽略
}).on('数据',(数据)=>{
log(`STDOUT:${data}`);
//@ts忽略
}).on('error',(errrrrrrr)=>{
console.error(`B${errrrrrr}`);
//@ts忽略
}).stderr.on('data',(data)=>{
错误(`STDERR:${data}`);
});
}
});
});
}
或:

“调试:本地标识:\'SSH-2.0-ssh2js0.4.4\'
'调试:客户端:在端口22上尝试…'
'调试:传出:写入通道\u打开(0,会话)'
'调试:客户端:已连接'
'DEBUG:Parser:IN_INIT'
'DEBUG:Parser:IN_问候语'
'DEBUG:Parser:IN_头'
'DEBUG:Remote ident:\'SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3\'
'调试:传出:写入KEXINIT'
错误:错误:服务器没有响应

这两种情况都没有可预测的模式。

目前,您必须等待
'ready'
事件,然后才能发出命令,因为在连接完全就绪之前,当前没有使用请求/命令队列。

在调用之前是否尝试在
conn
上等待
'ready'
事件
conn.exec()
?嗯。似乎我在某个时候把它拿走了。。。然后完全忘记了事件在节点中是如何工作的。谢谢,我试试。@mscdex是的,就是这样。如果你愿意,你可以完整地回答这个问题,我会接受的。你的选择。
Sep  2 22:04:27 <remote_host> sshd[9037]: Disconnected from <local_ip> port 38194 [preauth]
'DEBUG: Local ident: \'SSH-2.0-ssh2js0.4.4\''
'DEBUG: Client: Trying <REMOTE_IP> on port 22 ...'
'DEBUG: Outgoing: Writing CHANNEL_OPEN (0, session)'
'DEBUG: Client: Connected'
'DEBUG: Parser: IN_INIT'
'DEBUG: Parser: IN_GREETING'
'DEBUG: Parser: IN_HEADER'
'DEBUG: Remote ident: \'SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3\''
'DEBUG: Outgoing: Writing KEXINIT'
'DEBUG: Parser: IN_PACKETBEFORE (expecting 8)'
'DEBUG: Parser: IN_PACKET'
'DEBUG: Parser: pktLen:1076,padLen:6,remainLen:1072'
'DEBUG: Parser: IN_PACKETDATA'
'DEBUG: Parser: IN_PACKETDATAAFTER, packet: KEXINIT'
'DEBUG: Comparing KEXINITs ...'
<alogirthm comparisons, no error message, just print of what is picked>
'DEBUG: Outgoing: Writing KEXECDH_INIT'
'DEBUG: Parser: IN_PACKETBEFORE (expecting 8)'
events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: write EPIPE
    at WriteWrap.afterWrite [as oncomplete] (net.js:788:14)
Emitted 'error' event at:
    at Socket.<anonymous> (....../node_modules/ssh2/lib/client.js:307:10)
    at Socket.emit (events.js:203:15)
    at errorOrDestroy (internal/streams/destroy.js:107:12)
    at onwriteError (_stream_writable.js:436:5)
    at onwrite (_stream_writable.js:461:5)
    at _destroy (internal/streams/destroy.js:49:7)
    at Socket._destroy (net.js:613:3)
    at Socket.destroy (internal/streams/destroy.js:37:8)
    at WriteWrap.afterWrite [as oncomplete] (net.js:790:10)
'DEBUG: Local ident: \'SSH-2.0-ssh2js0.4.4\''
'DEBUG: Client: Trying<REMOTE_IP> on port 22 ...'
'DEBUG: Outgoing: Writing CHANNEL_OPEN (0, session)'
'DEBUG: Client: Connected'
'DEBUG: Parser: IN_INIT'
'DEBUG: Parser: IN_GREETING'
'DEBUG: Parser: IN_HEADER'
'DEBUG: Remote ident: \'SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3\''
'DEBUG: Outgoing: Writing KEXINIT'
ERROR: Error: No response from server