opencode-ssh-exec 0.1.0 → 0.1.1

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/README.md CHANGED
@@ -15,7 +15,7 @@ Add the package and tool permissions to `opencode.json`:
15
15
  ```json
16
16
  {
17
17
  "$schema": "https://opencode.ai/config.json",
18
- "plugin": ["opencode-ssh-exec"],
18
+ "plugin": ["opencode-ssh-exec@0.1.1"],
19
19
  "permission": {
20
20
  "ssh_exec": "ask",
21
21
  "ssh_start": "ask",
@@ -38,6 +38,7 @@ Plugin options use OpenCode's tuple form:
38
38
  {
39
39
  "defaultTimeoutSeconds": 300,
40
40
  "maxTimeoutSeconds": 86400,
41
+ "configFile": "/home/user/.ssh/config",
41
42
  "hostKeyPolicy": "accept-new",
42
43
  "updateHostKeys": true
43
44
  }
@@ -85,16 +86,17 @@ OpenCode custom tools do not currently expose true output streaming. `ssh_start`
85
86
  | `connectionReuse` | `false` | POSIX only; enables OpenSSH ControlMaster |
86
87
  | `controlPersistSeconds` | `30` | ControlMaster idle lifetime |
87
88
  | `sshExecutable` | platform default | Trusted absolute system SSH executable path |
89
+ | `configFile` | system default | Trusted absolute OpenSSH config path passed with `-F` |
88
90
 
89
91
  ## Security Model
90
92
 
91
93
  - `accept-new` is trust-on-first-use. It makes first connection easy but cannot detect an attacker present on that first connection. Changed host keys are still rejected. Use `hostKeyPolicy: "strict"` when fingerprints are provisioned separately.
92
94
  - `UpdateHostKeys=yes` can update the user's known-hosts file only after authentication with an already trusted key. It does not make a changed current key trusted.
93
- - Timeout, abort, and `ssh_process stop` terminate only the local SSH client. A remote process may continue. The plugin reports the remote outcome as unknown; do not automatically retry commands with side effects.
95
+ - Timeout, abort, and `ssh_process stop` terminate only the local SSH client. A remote process may continue. The plugin reports the remote outcome as unknown; do not automatically retry commands with side effects. One-shot children remain tracked until close is confirmed and receive another bounded shutdown attempt during plugin disposal.
94
96
  - `stdinText` is recorded as an OpenCode tool argument. Do not use it for passwords, tokens, private keys, or other secrets.
95
- - SSH config is interpreted by OpenSSH instead of a partial custom parser. Treat `~/.ssh/config` as trusted local code: directives such as `Match exec`, `ProxyCommand`, `KnownHostsCommand`, and provider helpers can execute local programs.
97
+ - SSH config is interpreted by OpenSSH instead of a partial custom parser. Treat the default config or an explicit `configFile` as trusted local code: directives such as `Match exec`, `ProxyCommand`, `KnownHostsCommand`, and provider helpers can execute local programs. `configFile` must be an absolute path. OpenSSH `-F` skips the system-wide config, so include any required organization policy from the selected file.
96
98
  - Host input is restricted to a safe ASCII alias/hostname grammar to prevent unsafe expansion by SSH config helper commands. Configure usernames, ports, IPv6 addresses, and jump hosts in SSH config under a simple alias.
97
- - Agent, X11, port, and tunnel forwarding are disabled by generated command-line options. `BatchMode=yes` prevents password prompts.
99
+ - Agent, X11, port, and tunnel forwarding are disabled by generated command-line options. `ForkAfterAuthentication=no` keeps the SSH client supervised, and `BatchMode=yes` prevents password prompts.
98
100
  - Retained process handles are scoped to one OpenCode session, bounded, and removed after their retention period. Plugin disposal attempts to stop active local SSH processes.
99
101
  - Deleting an OpenCode session requests termination of that session's retained local SSH processes.
100
102
  - Connection reuse is disabled by default and rejected for native Windows OpenSSH. On POSIX it uses a private temporary `ControlPath` and a short `ControlPersist` lifetime. A control socket is an authenticated capability available to local processes running as the same user.
package/dist/server.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type ChildProcessWithoutNullStreams } from "node:child_process";
1
2
  import { type Plugin } from "@opencode-ai/plugin";
2
3
  type HostKeyPolicy = "strict" | "accept-new";
3
4
  export type SshPluginOptions = {
@@ -14,6 +15,7 @@ export type SshPluginOptions = {
14
15
  connectionReuse: boolean;
15
16
  controlPersistSeconds: number;
16
17
  sshExecutable: string;
18
+ configFile?: string;
17
19
  };
18
20
  type RuntimeOptions = SshPluginOptions & {
19
21
  controlPath?: string;
@@ -29,6 +31,8 @@ type SshCommandInput = {
29
31
  };
30
32
  export declare function parseOptions(raw: Record<string, unknown>): SshPluginOptions;
31
33
  export declare function buildSshArgs(input: SshCommandInput, options: RuntimeOptions): string[];
34
+ export declare function buildControlExitArgs(host: string, controlPath: string, configFile?: string): string[];
35
+ export declare function disposeOneShotChildren(children: Set<ChildProcessWithoutNullStreams>, shutdownGraceMs?: number, forceSettleGraceMs?: number): Promise<void>;
32
36
  export declare function createServerForTesting(executablePrefixArgs: string[]): Plugin;
33
37
  declare const pluginModule: {
34
38
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,KAAK,MAAM,EAIZ,MAAM,qBAAqB,CAAC;AAe7B,KAAK,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,cAAc,GAAG,gBAAgB,GAAG;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAoGF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CA0H3E;AAiCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,YA8B3E;AA6/BD,wBAAgB,sBAAsB,CAAC,oBAAoB,EAAE,MAAM,EAAE,UAEpE;AAID,QAAA,MAAM,YAAY;;;CAGM,CAAC;AAEzB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,8BAA8B,EAAS,MAAM,oBAAoB,CAAC;AAOhF,OAAO,EAEL,KAAK,MAAM,EAIZ,MAAM,qBAAqB,CAAC;AAe7B,KAAK,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,cAAc,GAAG,gBAAgB,GAAG;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAoGF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAsI3E;AAiCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,YAgC3E;AAMD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,YAWpB;AA4ED,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,GAAG,CAAC,8BAA8B,CAAC,EAC7C,eAAe,SAAoB,EACnC,kBAAkB,SAAwB,iBAqD3C;AA27BD,wBAAgB,sBAAsB,CAAC,oBAAoB,EAAE,MAAM,EAAE,UAEpE;AAID,QAAA,MAAM,YAAY;;;CAGM,CAAC;AAEzB,eAAe,YAAY,CAAC"}
package/dist/server.js CHANGED
@@ -68,6 +68,7 @@ export function parseOptions(raw) {
68
68
  "connectionReuse",
69
69
  "controlPersistSeconds",
70
70
  "sshExecutable",
71
+ "configFile",
71
72
  ]);
72
73
  const unknownOptions = Object.keys(raw).filter((name) => !allowedOptions.has(name));
73
74
  if (unknownOptions.length > 0) {
@@ -89,6 +90,12 @@ export function parseOptions(raw) {
89
90
  if (!path.isAbsolute(sshExecutable)) {
90
91
  throw new Error("opencode-ssh-exec option sshExecutable must be an absolute path.");
91
92
  }
93
+ const configFile = raw.configFile === undefined
94
+ ? undefined
95
+ : stringOption(raw, "configFile", "unused");
96
+ if (configFile !== undefined && !path.isAbsolute(configFile)) {
97
+ throw new Error("opencode-ssh-exec option configFile must be an absolute path.");
98
+ }
92
99
  return {
93
100
  defaultTimeoutSeconds,
94
101
  maxTimeoutSeconds,
@@ -103,6 +110,7 @@ export function parseOptions(raw) {
103
110
  connectionReuse,
104
111
  controlPersistSeconds: integerOption(raw, "controlPersistSeconds", 30, 1, 600),
105
112
  sshExecutable,
113
+ configFile,
106
114
  };
107
115
  }
108
116
  function validateHost(host) {
@@ -135,6 +143,7 @@ export function buildSshArgs(input, options) {
135
143
  "ForwardAgent=no",
136
144
  "ForwardX11=no",
137
145
  "ClearAllForwardings=yes",
146
+ "ForkAfterAuthentication=no",
138
147
  "Tunnel=no",
139
148
  "PermitLocalCommand=no",
140
149
  "RequestTTY=no",
@@ -148,6 +157,7 @@ export function buildSshArgs(input, options) {
148
157
  : ["ControlMaster=no", "ControlPath=none"]),
149
158
  ];
150
159
  return [
160
+ ...explicitConfigArgs(options.configFile),
151
161
  "-T",
152
162
  ...sshOptions.flatMap((value) => ["-o", value]),
153
163
  "--",
@@ -155,6 +165,20 @@ export function buildSshArgs(input, options) {
155
165
  buildRemoteCommand(input.command, input.remoteCwd),
156
166
  ];
157
167
  }
168
+ function explicitConfigArgs(configFile) {
169
+ return configFile ? ["-F", configFile] : [];
170
+ }
171
+ export function buildControlExitArgs(host, controlPath, configFile) {
172
+ return [
173
+ ...explicitConfigArgs(configFile),
174
+ "-S",
175
+ controlPath,
176
+ "-O",
177
+ "exit",
178
+ "--",
179
+ host,
180
+ ];
181
+ }
158
182
  function childEnvironment() {
159
183
  const allowed = new Set([
160
184
  "APPDATA",
@@ -163,9 +187,17 @@ function childEnvironment() {
163
187
  "HOMEDRIVE",
164
188
  "HOMEPATH",
165
189
  "LANG",
190
+ "LC_ALL",
191
+ "LC_COLLATE",
192
+ "LC_CTYPE",
193
+ "LC_MESSAGES",
194
+ "LC_MONETARY",
195
+ "LC_NUMERIC",
196
+ "LC_TIME",
166
197
  "LOCALAPPDATA",
167
198
  "PATH",
168
199
  "PATHEXT",
200
+ "PROGRAMDATA",
169
201
  "SSH_AUTH_SOCK",
170
202
  "SYSTEMROOT",
171
203
  "TEMP",
@@ -175,9 +207,7 @@ function childEnvironment() {
175
207
  "USERPROFILE",
176
208
  "WINDIR",
177
209
  ]);
178
- return Object.fromEntries(Object.entries(process.env).filter(([name, value]) => value !== undefined &&
179
- (allowed.has(name.toUpperCase()) ||
180
- name.toUpperCase().startsWith("LC_"))));
210
+ return Object.fromEntries(Object.entries(process.env).filter(([name, value]) => value !== undefined && allowed.has(name.toUpperCase())));
181
211
  }
182
212
  function spawnSsh(input, options) {
183
213
  if (options.connectionReuse)
@@ -188,7 +218,7 @@ function spawnSsh(input, options) {
188
218
  stdio: ["pipe", "pipe", "pipe"],
189
219
  });
190
220
  }
191
- function requestChildShutdown(child, onHardKill) {
221
+ function requestChildShutdown(child, onHardKill, shutdownGraceMs = SHUTDOWN_GRACE_MS) {
192
222
  const terminate = () => {
193
223
  try {
194
224
  child.kill("SIGTERM");
@@ -208,10 +238,59 @@ function requestChildShutdown(child, onHardKill) {
208
238
  catch {
209
239
  // The process already exited.
210
240
  }
211
- }, SHUTDOWN_GRACE_MS);
241
+ }, shutdownGraceMs);
212
242
  timer.unref();
213
243
  onHardKill(timer);
214
244
  }
245
+ export async function disposeOneShotChildren(children, shutdownGraceMs = SHUTDOWN_GRACE_MS, forceSettleGraceMs = FORCE_SETTLE_GRACE_MS) {
246
+ const active = [...children];
247
+ if (active.length === 0)
248
+ return;
249
+ const hardKillTimers = [];
250
+ const closeListeners = new Map();
251
+ const closeWaiters = active.map((child) => new Promise((resolve) => {
252
+ const onClose = () => {
253
+ children.delete(child);
254
+ resolve();
255
+ };
256
+ closeListeners.set(child, onClose);
257
+ child.once("close", onClose);
258
+ }));
259
+ for (const child of active) {
260
+ requestChildShutdown(child, (timer) => hardKillTimers.push(timer), shutdownGraceMs);
261
+ }
262
+ let settleTimer;
263
+ try {
264
+ await Promise.race([
265
+ Promise.all(closeWaiters),
266
+ new Promise((resolve) => {
267
+ settleTimer = setTimeout(resolve, shutdownGraceMs + forceSettleGraceMs);
268
+ settleTimer.unref();
269
+ }),
270
+ ]);
271
+ }
272
+ finally {
273
+ if (settleTimer)
274
+ clearTimeout(settleTimer);
275
+ for (const timer of hardKillTimers)
276
+ clearTimeout(timer);
277
+ for (const [child, listener] of closeListeners) {
278
+ child.removeListener("close", listener);
279
+ }
280
+ }
281
+ for (const child of children) {
282
+ try {
283
+ child.kill("SIGKILL");
284
+ }
285
+ catch {
286
+ // Best effort during plugin disposal.
287
+ }
288
+ child.stdin.destroy();
289
+ child.stdout.destroy();
290
+ child.stderr.destroy();
291
+ }
292
+ children.clear();
293
+ }
215
294
  function inputBuffer(stdinText, maxInputBytes) {
216
295
  if (stdinText === undefined)
217
296
  return undefined;
@@ -245,10 +324,12 @@ function stripTerminalControls(value) {
245
324
  .replace(/\u001b\[[0-?]*[ -/]*[@-~]/g, "")
246
325
  .replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f-\u009f\u202a-\u202e\u2066-\u2069]/g, "");
247
326
  }
248
- function runSsh(input, options, stdin, abort, maxOutputBytes) {
327
+ function runSsh(input, options, stdin, abort, maxOutputBytes, oneShotChildren) {
249
328
  if (abort.aborted)
250
329
  throw new Error("SSH command was aborted before the local process was created.");
251
330
  const child = spawnSsh(input, options);
331
+ oneShotChildren.add(child);
332
+ child.once("close", () => oneShotChildren.delete(child));
252
333
  return new Promise((resolve, reject) => {
253
334
  const stdout = [];
254
335
  const stderr = [];
@@ -671,14 +752,9 @@ class ProcessManager {
671
752
  process.child.stdout.destroy();
672
753
  process.child.stderr.destroy();
673
754
  if (process.status === "stopping") {
674
- process.status = "error";
675
755
  process.error =
676
756
  "Local SSH termination could not be confirmed after SIGKILL.";
677
757
  process.output.finalize();
678
- if (process.discardOnExit)
679
- this.removeProcess(process);
680
- else
681
- this.scheduleRetention(process);
682
758
  }
683
759
  }, SHUTDOWN_GRACE_MS + FORCE_SETTLE_GRACE_MS);
684
760
  process.forceFinalizeTimer.unref();
@@ -763,12 +839,7 @@ async function closeControlMasters(options) {
763
839
  await Promise.all([...options.usedControlHosts].map((host) => new Promise((resolve) => {
764
840
  const child = spawn(options.sshExecutable, [
765
841
  ...(options.executablePrefixArgs ?? []),
766
- "-S",
767
- options.controlPath,
768
- "-O",
769
- "exit",
770
- "--",
771
- host,
842
+ ...buildControlExitArgs(host, options.controlPath, options.configFile),
772
843
  ], { env: childEnvironment(), windowsHide: true, stdio: "ignore" });
773
844
  const timer = setTimeout(() => {
774
845
  try {
@@ -801,6 +872,7 @@ const createServer = (executablePrefixArgs) => async (_input, rawOptions = {}) =
801
872
  options.usedControlHosts = new Set();
802
873
  }
803
874
  const processes = new ProcessManager(options);
875
+ const oneShotChildren = new Set();
804
876
  const sshExec = tool({
805
877
  description: "Run one non-interactive command with system OpenSSH. SSH config is evaluated by OpenSSH. Supports bounded non-secret stdin and 1-86400 second timeouts. A timeout stops only local ssh; the remote process may continue. Host-key policy defaults to accept-new (TOFU), which cannot detect a first-connection MITM.",
806
878
  args: {
@@ -853,7 +925,7 @@ const createServer = (executablePrefixArgs) => async (_input, rawOptions = {}) =
853
925
  timeoutSeconds,
854
926
  };
855
927
  context.metadata({ title: `ssh ${args.host}` });
856
- const result = await runSsh(input, options, stdin, context.abort, maxOutputBytes);
928
+ const result = await runSsh(input, options, stdin, context.abort, maxOutputBytes, oneShotChildren);
857
929
  const remoteOutcome = result.timedOut ||
858
930
  result.aborted ||
859
931
  !result.localTerminationConfirmed ||
@@ -998,6 +1070,7 @@ const createServer = (executablePrefixArgs) => async (_input, rawOptions = {}) =
998
1070
  },
999
1071
  async dispose() {
1000
1072
  await processes.dispose();
1073
+ await disposeOneShotChildren(oneShotChildren);
1001
1074
  await closeControlMasters(options);
1002
1075
  if (controlDirectory)
1003
1076
  await rm(controlDirectory, { recursive: true, force: true });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-ssh-exec",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "OpenCode plugin for one-shot and retained SSH processes with stdin, polling, and configurable timeouts.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/server.ts CHANGED
@@ -42,6 +42,7 @@ export type SshPluginOptions = {
42
42
  connectionReuse: boolean;
43
43
  controlPersistSeconds: number;
44
44
  sshExecutable: string;
45
+ configFile?: string;
45
46
  };
46
47
 
47
48
  type RuntimeOptions = SshPluginOptions & {
@@ -171,6 +172,7 @@ export function parseOptions(raw: Record<string, unknown>): SshPluginOptions {
171
172
  "connectionReuse",
172
173
  "controlPersistSeconds",
173
174
  "sshExecutable",
175
+ "configFile",
174
176
  ]);
175
177
  const unknownOptions = Object.keys(raw).filter(
176
178
  (name) => !allowedOptions.has(name),
@@ -233,6 +235,16 @@ export function parseOptions(raw: Record<string, unknown>): SshPluginOptions {
233
235
  );
234
236
  }
235
237
 
238
+ const configFile =
239
+ raw.configFile === undefined
240
+ ? undefined
241
+ : stringOption(raw, "configFile", "unused");
242
+ if (configFile !== undefined && !path.isAbsolute(configFile)) {
243
+ throw new Error(
244
+ "opencode-ssh-exec option configFile must be an absolute path.",
245
+ );
246
+ }
247
+
236
248
  return {
237
249
  defaultTimeoutSeconds,
238
250
  maxTimeoutSeconds,
@@ -277,6 +289,7 @@ export function parseOptions(raw: Record<string, unknown>): SshPluginOptions {
277
289
  600,
278
290
  ),
279
291
  sshExecutable,
292
+ configFile,
280
293
  };
281
294
  }
282
295
 
@@ -321,6 +334,7 @@ export function buildSshArgs(input: SshCommandInput, options: RuntimeOptions) {
321
334
  "ForwardAgent=no",
322
335
  "ForwardX11=no",
323
336
  "ClearAllForwardings=yes",
337
+ "ForkAfterAuthentication=no",
324
338
  "Tunnel=no",
325
339
  "PermitLocalCommand=no",
326
340
  "RequestTTY=no",
@@ -335,6 +349,7 @@ export function buildSshArgs(input: SshCommandInput, options: RuntimeOptions) {
335
349
  ];
336
350
 
337
351
  return [
352
+ ...explicitConfigArgs(options.configFile),
338
353
  "-T",
339
354
  ...sshOptions.flatMap((value) => ["-o", value]),
340
355
  "--",
@@ -343,6 +358,26 @@ export function buildSshArgs(input: SshCommandInput, options: RuntimeOptions) {
343
358
  ];
344
359
  }
345
360
 
361
+ function explicitConfigArgs(configFile?: string) {
362
+ return configFile ? ["-F", configFile] : [];
363
+ }
364
+
365
+ export function buildControlExitArgs(
366
+ host: string,
367
+ controlPath: string,
368
+ configFile?: string,
369
+ ) {
370
+ return [
371
+ ...explicitConfigArgs(configFile),
372
+ "-S",
373
+ controlPath,
374
+ "-O",
375
+ "exit",
376
+ "--",
377
+ host,
378
+ ];
379
+ }
380
+
346
381
  function childEnvironment() {
347
382
  const allowed = new Set([
348
383
  "APPDATA",
@@ -351,9 +386,17 @@ function childEnvironment() {
351
386
  "HOMEDRIVE",
352
387
  "HOMEPATH",
353
388
  "LANG",
389
+ "LC_ALL",
390
+ "LC_COLLATE",
391
+ "LC_CTYPE",
392
+ "LC_MESSAGES",
393
+ "LC_MONETARY",
394
+ "LC_NUMERIC",
395
+ "LC_TIME",
354
396
  "LOCALAPPDATA",
355
397
  "PATH",
356
398
  "PATHEXT",
399
+ "PROGRAMDATA",
357
400
  "SSH_AUTH_SOCK",
358
401
  "SYSTEMROOT",
359
402
  "TEMP",
@@ -365,10 +408,7 @@ function childEnvironment() {
365
408
  ]);
366
409
  return Object.fromEntries(
367
410
  Object.entries(process.env).filter(
368
- ([name, value]) =>
369
- value !== undefined &&
370
- (allowed.has(name.toUpperCase()) ||
371
- name.toUpperCase().startsWith("LC_")),
411
+ ([name, value]) => value !== undefined && allowed.has(name.toUpperCase()),
372
412
  ),
373
413
  ) as NodeJS.ProcessEnv;
374
414
  }
@@ -389,6 +429,7 @@ function spawnSsh(input: SshCommandInput, options: RuntimeOptions) {
389
429
  function requestChildShutdown(
390
430
  child: ChildProcessWithoutNullStreams,
391
431
  onHardKill: (timer: ReturnType<typeof setTimeout>) => void,
432
+ shutdownGraceMs = SHUTDOWN_GRACE_MS,
392
433
  ) {
393
434
  const terminate = () => {
394
435
  try {
@@ -406,11 +447,69 @@ function requestChildShutdown(
406
447
  } catch {
407
448
  // The process already exited.
408
449
  }
409
- }, SHUTDOWN_GRACE_MS);
450
+ }, shutdownGraceMs);
410
451
  timer.unref();
411
452
  onHardKill(timer);
412
453
  }
413
454
 
455
+ export async function disposeOneShotChildren(
456
+ children: Set<ChildProcessWithoutNullStreams>,
457
+ shutdownGraceMs = SHUTDOWN_GRACE_MS,
458
+ forceSettleGraceMs = FORCE_SETTLE_GRACE_MS,
459
+ ) {
460
+ const active = [...children];
461
+ if (active.length === 0) return;
462
+ const hardKillTimers: ReturnType<typeof setTimeout>[] = [];
463
+ const closeListeners = new Map<ChildProcessWithoutNullStreams, () => void>();
464
+ const closeWaiters = active.map(
465
+ (child) =>
466
+ new Promise<void>((resolve) => {
467
+ const onClose = () => {
468
+ children.delete(child);
469
+ resolve();
470
+ };
471
+ closeListeners.set(child, onClose);
472
+ child.once("close", onClose);
473
+ }),
474
+ );
475
+ for (const child of active) {
476
+ requestChildShutdown(
477
+ child,
478
+ (timer) => hardKillTimers.push(timer),
479
+ shutdownGraceMs,
480
+ );
481
+ }
482
+
483
+ let settleTimer: ReturnType<typeof setTimeout> | undefined;
484
+ try {
485
+ await Promise.race([
486
+ Promise.all(closeWaiters),
487
+ new Promise<void>((resolve) => {
488
+ settleTimer = setTimeout(resolve, shutdownGraceMs + forceSettleGraceMs);
489
+ settleTimer.unref();
490
+ }),
491
+ ]);
492
+ } finally {
493
+ if (settleTimer) clearTimeout(settleTimer);
494
+ for (const timer of hardKillTimers) clearTimeout(timer);
495
+ for (const [child, listener] of closeListeners) {
496
+ child.removeListener("close", listener);
497
+ }
498
+ }
499
+
500
+ for (const child of children) {
501
+ try {
502
+ child.kill("SIGKILL");
503
+ } catch {
504
+ // Best effort during plugin disposal.
505
+ }
506
+ child.stdin.destroy();
507
+ child.stdout.destroy();
508
+ child.stderr.destroy();
509
+ }
510
+ children.clear();
511
+ }
512
+
414
513
  function inputBuffer(stdinText: string | undefined, maxInputBytes: number) {
415
514
  if (stdinText === undefined) return undefined;
416
515
  const byteLength = Buffer.byteLength(stdinText, "utf8");
@@ -469,12 +568,15 @@ function runSsh(
469
568
  stdin: Buffer | undefined,
470
569
  abort: AbortSignal,
471
570
  maxOutputBytes: number,
571
+ oneShotChildren: Set<ChildProcessWithoutNullStreams>,
472
572
  ) {
473
573
  if (abort.aborted)
474
574
  throw new Error(
475
575
  "SSH command was aborted before the local process was created.",
476
576
  );
477
577
  const child = spawnSsh(input, options);
578
+ oneShotChildren.add(child);
579
+ child.once("close", () => oneShotChildren.delete(child));
478
580
  return new Promise<RunResult>((resolve, reject) => {
479
581
  const stdout: Buffer[] = [];
480
582
  const stderr: Buffer[] = [];
@@ -958,12 +1060,9 @@ class ProcessManager {
958
1060
  process.child.stdout.destroy();
959
1061
  process.child.stderr.destroy();
960
1062
  if (process.status === "stopping") {
961
- process.status = "error";
962
1063
  process.error =
963
1064
  "Local SSH termination could not be confirmed after SIGKILL.";
964
1065
  process.output.finalize();
965
- if (process.discardOnExit) this.removeProcess(process);
966
- else this.scheduleRetention(process);
967
1066
  }
968
1067
  }, SHUTDOWN_GRACE_MS + FORCE_SETTLE_GRACE_MS);
969
1068
  process.forceFinalizeTimer.unref();
@@ -1059,12 +1158,11 @@ async function closeControlMasters(options: RuntimeOptions) {
1059
1158
  options.sshExecutable,
1060
1159
  [
1061
1160
  ...(options.executablePrefixArgs ?? []),
1062
- "-S",
1063
- options.controlPath!,
1064
- "-O",
1065
- "exit",
1066
- "--",
1067
- host,
1161
+ ...buildControlExitArgs(
1162
+ host,
1163
+ options.controlPath!,
1164
+ options.configFile,
1165
+ ),
1068
1166
  ],
1069
1167
  { env: childEnvironment(), windowsHide: true, stdio: "ignore" },
1070
1168
  );
@@ -1103,6 +1201,7 @@ const createServer =
1103
1201
  options.usedControlHosts = new Set();
1104
1202
  }
1105
1203
  const processes = new ProcessManager(options);
1204
+ const oneShotChildren = new Set<ChildProcessWithoutNullStreams>();
1106
1205
 
1107
1206
  const sshExec = tool({
1108
1207
  description:
@@ -1177,6 +1276,7 @@ const createServer =
1177
1276
  stdin,
1178
1277
  context.abort,
1179
1278
  maxOutputBytes,
1279
+ oneShotChildren,
1180
1280
  );
1181
1281
  const remoteOutcome =
1182
1282
  result.timedOut ||
@@ -1355,6 +1455,7 @@ const createServer =
1355
1455
  },
1356
1456
  async dispose() {
1357
1457
  await processes.dispose();
1458
+ await disposeOneShotChildren(oneShotChildren);
1358
1459
  await closeControlMasters(options);
1359
1460
  if (controlDirectory)
1360
1461
  await rm(controlDirectory, { recursive: true, force: true });