bdy 1.9.48 → 1.9.49-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/distTs/package.json +1 -1
- package/distTs/src/server/ssh.js +28 -5
- package/package.json +1 -1
package/distTs/package.json
CHANGED
package/distTs/src/server/ssh.js
CHANGED
|
@@ -148,6 +148,7 @@ class ServerSsh extends events_1.default {
|
|
|
148
148
|
let pty;
|
|
149
149
|
let x11;
|
|
150
150
|
const closeSession = () => {
|
|
151
|
+
logger_js_1.default.debug('ssh close session');
|
|
151
152
|
env = null;
|
|
152
153
|
pty = null;
|
|
153
154
|
x11 = null;
|
|
@@ -161,13 +162,15 @@ class ServerSsh extends events_1.default {
|
|
|
161
162
|
channel.removeAllListeners();
|
|
162
163
|
channel = null;
|
|
163
164
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
165
|
+
client.removeListener('close', closeSession);
|
|
166
|
+
client = null;
|
|
167
167
|
};
|
|
168
|
+
client.on('close', closeSession);
|
|
168
169
|
session.on('close', closeSession);
|
|
169
170
|
session.on('end', closeSession);
|
|
170
171
|
session.on('pty', (accept, reject, info) => {
|
|
172
|
+
logger_js_1.default.debug('ssh pty');
|
|
173
|
+
logger_js_1.default.debug(info);
|
|
171
174
|
if (!proxyClient) {
|
|
172
175
|
if (reject)
|
|
173
176
|
reject();
|
|
@@ -178,6 +181,8 @@ class ServerSsh extends events_1.default {
|
|
|
178
181
|
accept();
|
|
179
182
|
});
|
|
180
183
|
session.on('window-change', (accept, reject, info) => {
|
|
184
|
+
logger_js_1.default.debug('ssh window-change');
|
|
185
|
+
logger_js_1.default.debug(info);
|
|
181
186
|
if (!proxyClient) {
|
|
182
187
|
if (reject)
|
|
183
188
|
reject();
|
|
@@ -195,6 +200,7 @@ class ServerSsh extends events_1.default {
|
|
|
195
200
|
accept();
|
|
196
201
|
});
|
|
197
202
|
session.on('shell', (accept, reject) => {
|
|
203
|
+
logger_js_1.default.debug('ssh shell');
|
|
198
204
|
if (!proxyClient || !accept) {
|
|
199
205
|
if (reject)
|
|
200
206
|
reject();
|
|
@@ -220,6 +226,8 @@ class ServerSsh extends events_1.default {
|
|
|
220
226
|
});
|
|
221
227
|
});
|
|
222
228
|
session.on('signal', (accept, reject, info) => {
|
|
229
|
+
logger_js_1.default.debug('ssh signal');
|
|
230
|
+
logger_js_1.default.debug(info);
|
|
223
231
|
const { name } = info;
|
|
224
232
|
if (!proxyClient || !name || !channel || !channel.signal) {
|
|
225
233
|
if (reject)
|
|
@@ -231,6 +239,8 @@ class ServerSsh extends events_1.default {
|
|
|
231
239
|
accept();
|
|
232
240
|
});
|
|
233
241
|
session.on('subsystem', (accept, reject, info) => {
|
|
242
|
+
logger_js_1.default.debug('ssh subsystem');
|
|
243
|
+
logger_js_1.default.debug(info);
|
|
234
244
|
const { name } = info;
|
|
235
245
|
if (!proxyClient || !accept || !name) {
|
|
236
246
|
if (reject)
|
|
@@ -254,6 +264,8 @@ class ServerSsh extends events_1.default {
|
|
|
254
264
|
});
|
|
255
265
|
});
|
|
256
266
|
session.on('x11', (accept, reject, info) => {
|
|
267
|
+
logger_js_1.default.debug('ssh x11');
|
|
268
|
+
logger_js_1.default.debug(info);
|
|
257
269
|
if (!proxyClient) {
|
|
258
270
|
if (reject)
|
|
259
271
|
reject();
|
|
@@ -264,6 +276,8 @@ class ServerSsh extends events_1.default {
|
|
|
264
276
|
accept();
|
|
265
277
|
});
|
|
266
278
|
session.on('exec', (accept, reject, info) => {
|
|
279
|
+
logger_js_1.default.debug('ssh exec');
|
|
280
|
+
logger_js_1.default.debug(info);
|
|
267
281
|
if (!info.command || !accept) {
|
|
268
282
|
if (reject)
|
|
269
283
|
reject();
|
|
@@ -294,6 +308,8 @@ class ServerSsh extends events_1.default {
|
|
|
294
308
|
});
|
|
295
309
|
});
|
|
296
310
|
session.on('env', (accept, reject, info) => {
|
|
311
|
+
logger_js_1.default.debug('ssh env');
|
|
312
|
+
logger_js_1.default.debug(info);
|
|
297
313
|
Object.keys(info || {}).forEach((key) => {
|
|
298
314
|
env[key] = info[key];
|
|
299
315
|
});
|
|
@@ -301,6 +317,7 @@ class ServerSsh extends events_1.default {
|
|
|
301
317
|
accept();
|
|
302
318
|
});
|
|
303
319
|
session.on('sftp', (accept, reject) => {
|
|
320
|
+
logger_js_1.default.debug('sftp');
|
|
304
321
|
if (!sftp && accept) {
|
|
305
322
|
sftp = new sftp_1.default(accept());
|
|
306
323
|
}
|
|
@@ -310,14 +327,15 @@ class ServerSsh extends events_1.default {
|
|
|
310
327
|
});
|
|
311
328
|
}
|
|
312
329
|
processClient(client) {
|
|
330
|
+
logger_js_1.default.debug('new ssh client');
|
|
313
331
|
let proxyClient;
|
|
314
332
|
client.setNoDelay();
|
|
315
333
|
client.on('authentication', async (ctx) => {
|
|
316
334
|
proxyClient = await this.authenticateClient(ctx);
|
|
335
|
+
logger_js_1.default.debug('ssh authentication', !!proxyClient);
|
|
317
336
|
});
|
|
318
337
|
client.on('close', () => {
|
|
319
|
-
|
|
320
|
-
client = null;
|
|
338
|
+
logger_js_1.default.debug('ssh close');
|
|
321
339
|
if (proxyClient) {
|
|
322
340
|
try {
|
|
323
341
|
proxyClient.removeAllListeners();
|
|
@@ -328,6 +346,10 @@ class ServerSsh extends events_1.default {
|
|
|
328
346
|
}
|
|
329
347
|
proxyClient = null;
|
|
330
348
|
}
|
|
349
|
+
setTimeout(() => {
|
|
350
|
+
client.removeAllListeners();
|
|
351
|
+
client = null;
|
|
352
|
+
}, 1000);
|
|
331
353
|
});
|
|
332
354
|
client.on('error', (err) => {
|
|
333
355
|
logger_js_1.default.debug('Error on ssh server client');
|
|
@@ -335,6 +357,7 @@ class ServerSsh extends events_1.default {
|
|
|
335
357
|
client.end();
|
|
336
358
|
});
|
|
337
359
|
client.on('session', (accept) => {
|
|
360
|
+
logger_js_1.default.debug('ssh session');
|
|
338
361
|
this.clientSession(accept(), client, proxyClient);
|
|
339
362
|
});
|
|
340
363
|
}
|