ssh-mcp-pro 1.4.3 → 1.6.0
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/CHANGELOG.md +41 -0
- package/MIGRATION.md +1 -1
- package/README.md +1 -1
- package/dist/agent-bin.js +2 -2
- package/dist/agent-bin.js.map +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +1 -1
- package/dist/remote/action-record-sanitize.d.ts +4 -0
- package/dist/remote/action-record-sanitize.d.ts.map +1 -0
- package/dist/remote/action-record-sanitize.js +11 -0
- package/dist/remote/action-record-sanitize.js.map +1 -0
- package/dist/remote/agent-bounded-io.d.ts +30 -0
- package/dist/remote/agent-bounded-io.d.ts.map +1 -0
- package/dist/remote/agent-bounded-io.js +135 -0
- package/dist/remote/agent-bounded-io.js.map +1 -0
- package/dist/remote/agent-browser-enrollment.d.ts +16 -0
- package/dist/remote/agent-browser-enrollment.d.ts.map +1 -0
- package/dist/remote/agent-browser-enrollment.js +190 -0
- package/dist/remote/agent-browser-enrollment.js.map +1 -0
- package/dist/remote/agent-cli.d.ts +5 -0
- package/dist/remote/agent-cli.d.ts.map +1 -1
- package/dist/remote/agent-cli.js +91 -14
- package/dist/remote/agent-cli.js.map +1 -1
- package/dist/remote/agent-content-search.d.ts +20 -0
- package/dist/remote/agent-content-search.d.ts.map +1 -0
- package/dist/remote/agent-content-search.js +61 -0
- package/dist/remote/agent-content-search.js.map +1 -0
- package/dist/remote/agent-enrollment.d.ts +12 -0
- package/dist/remote/agent-enrollment.d.ts.map +1 -0
- package/dist/remote/agent-enrollment.js +87 -0
- package/dist/remote/agent-enrollment.js.map +1 -0
- package/dist/remote/agent-executor.d.ts +5 -0
- package/dist/remote/agent-executor.d.ts.map +1 -1
- package/dist/remote/agent-executor.js +96 -107
- package/dist/remote/agent-executor.js.map +1 -1
- package/dist/remote/agent-file-search.d.ts +22 -0
- package/dist/remote/agent-file-search.d.ts.map +1 -0
- package/dist/remote/agent-file-search.js +243 -0
- package/dist/remote/agent-file-search.js.map +1 -0
- package/dist/remote/agent-managed-process.d.ts +43 -0
- package/dist/remote/agent-managed-process.d.ts.map +1 -0
- package/dist/remote/agent-managed-process.js +291 -0
- package/dist/remote/agent-managed-process.js.map +1 -0
- package/dist/remote/control-plane.d.ts +3 -2
- package/dist/remote/control-plane.d.ts.map +1 -1
- package/dist/remote/control-plane.js +24 -80
- package/dist/remote/control-plane.js.map +1 -1
- package/dist/remote/dashboard-enrollment-commands.d.ts +8 -0
- package/dist/remote/dashboard-enrollment-commands.d.ts.map +1 -0
- package/dist/remote/dashboard-enrollment-commands.js +23 -0
- package/dist/remote/dashboard-enrollment-commands.js.map +1 -0
- package/dist/remote/dashboard-enrollment-feedback-script.d.ts +3 -0
- package/dist/remote/dashboard-enrollment-feedback-script.d.ts.map +1 -0
- package/dist/remote/dashboard-enrollment-feedback-script.js +227 -0
- package/dist/remote/dashboard-enrollment-feedback-script.js.map +1 -0
- package/dist/remote/mcp-tools.d.ts +1 -0
- package/dist/remote/mcp-tools.d.ts.map +1 -1
- package/dist/remote/mcp-tools.js +207 -3
- package/dist/remote/mcp-tools.js.map +1 -1
- package/dist/remote/oauth-handler.d.ts +5 -0
- package/dist/remote/oauth-handler.d.ts.map +1 -1
- package/dist/remote/oauth-handler.js +110 -65
- package/dist/remote/oauth-handler.js.map +1 -1
- package/dist/remote/oauth-provider-exchange.d.ts +11 -0
- package/dist/remote/oauth-provider-exchange.d.ts.map +1 -0
- package/dist/remote/oauth-provider-exchange.js +73 -0
- package/dist/remote/oauth-provider-exchange.js.map +1 -0
- package/dist/remote/safe-file.d.ts +19 -1
- package/dist/remote/safe-file.d.ts.map +1 -1
- package/dist/remote/safe-file.js +77 -3
- package/dist/remote/safe-file.js.map +1 -1
- package/dist/remote/schemas.d.ts +16 -0
- package/dist/remote/schemas.d.ts.map +1 -1
- package/dist/remote/schemas.js +1 -0
- package/dist/remote/schemas.js.map +1 -1
- package/dist/remote/store-schema.d.ts +4 -0
- package/dist/remote/store-schema.d.ts.map +1 -0
- package/dist/remote/store-schema.js +147 -0
- package/dist/remote/store-schema.js.map +1 -0
- package/dist/remote/store.d.ts +9 -5
- package/dist/remote/store.d.ts.map +1 -1
- package/dist/remote/store.js +96 -133
- package/dist/remote/store.js.map +1 -1
- package/dist/remote/types.d.ts +16 -2
- package/dist/remote/types.d.ts.map +1 -1
- package/dist/remote/types.js +15 -0
- package/dist/remote/types.js.map +1 -1
- package/dist/remote/web-dashboard-html.d.ts.map +1 -1
- package/dist/remote/web-dashboard-html.js +25 -27
- package/dist/remote/web-dashboard-html.js.map +1 -1
- package/dist/remote/web-dashboard-oauth-users.d.ts.map +1 -1
- package/dist/remote/web-dashboard-oauth-users.js +4 -38
- package/dist/remote/web-dashboard-oauth-users.js.map +1 -1
- package/dist/remote/web-dashboard-styles.d.ts +1 -1
- package/dist/remote/web-dashboard-styles.d.ts.map +1 -1
- package/dist/remote/web-dashboard-styles.js +2 -0
- package/dist/remote/web-dashboard-styles.js.map +1 -1
- package/dist/remote/web-dashboard.d.ts +0 -2
- package/dist/remote/web-dashboard.d.ts.map +1 -1
- package/dist/remote/web-dashboard.js +12 -20
- package/dist/remote/web-dashboard.js.map +1 -1
- package/dist/session-auth-config.d.ts +8 -0
- package/dist/session-auth-config.d.ts.map +1 -0
- package/dist/session-auth-config.js +67 -0
- package/dist/session-auth-config.js.map +1 -0
- package/dist/session.d.ts +0 -12
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +3 -64
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/docs/adding-a-device.md +187 -11
- package/docs/api-overview.md +67 -0
- package/docs/backup-restore-verification.md +45 -0
- package/docs/coolify.md +9 -0
- package/docs/development/local-setup.md +1 -1
- package/docs/reference/compatibility.md +1 -1
- package/docs/security/hosted-data-inventory.md +3 -1
- package/docs/theme/favicon.svg +12 -0
- package/docs/theme/ssh-docs.css +670 -0
- package/docs/theme/ssh-docs.js +58 -0
- package/docs/tutorials/getting-started.md +1 -1
- package/mcp.json +1 -1
- package/package.json +12 -12
- package/registry/ssh-mcp-pro/mcp.json +1 -1
- package/server.json +3 -3
package/dist/session.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { NodeSSH } from "node-ssh";
|
|
2
|
+
import { buildSessionAuthConfig } from "./session-auth-config.js";
|
|
2
3
|
import * as fs from "node:fs";
|
|
3
4
|
import * as path from "node:path";
|
|
4
5
|
import * as os from "node:os";
|
|
5
|
-
import { normalizeSha256Fingerprint, knownHostKeyFingerprints, generateSessionId,
|
|
6
|
+
import { normalizeSha256Fingerprint, knownHostKeyFingerprints, generateSessionId, parseKnownHostLine, knownHostPatternMatches, } from "./session-auth.js";
|
|
6
7
|
import { SSHMCPError, } from "./types.js";
|
|
7
8
|
import { createAuthError, createConnectionError, createHostKeyError, createPolicyError, createTimeoutError, } from "./errors.js";
|
|
8
9
|
import { logger } from "./logging.js";
|
|
@@ -139,7 +140,7 @@ export class SessionManager {
|
|
|
139
140
|
await this.reserveConnectionSlot();
|
|
140
141
|
reserved = true;
|
|
141
142
|
const ssh = new NodeSSH();
|
|
142
|
-
const authConfig = await
|
|
143
|
+
const authConfig = await buildSessionAuthConfig(params);
|
|
143
144
|
const knownHostsPath = params.knownHostsPath ?? this.security.knownHostsPath;
|
|
144
145
|
const connectConfig = {
|
|
145
146
|
host: params.host,
|
|
@@ -288,68 +289,6 @@ export class SessionManager {
|
|
|
288
289
|
session.info.lastUsed = Date.now();
|
|
289
290
|
return session;
|
|
290
291
|
}
|
|
291
|
-
/**
|
|
292
|
-
* Builds authentication configuration based on the auth strategy
|
|
293
|
-
*/
|
|
294
|
-
async buildAuthConfig(params) {
|
|
295
|
-
const authStrategy = params.auth ?? "auto";
|
|
296
|
-
logger.debug("Building auth config", { strategy: authStrategy });
|
|
297
|
-
switch (authStrategy) {
|
|
298
|
-
case "password":
|
|
299
|
-
if (!params.password) {
|
|
300
|
-
throw createAuthError("Password required for password authentication");
|
|
301
|
-
}
|
|
302
|
-
return { password: params.password };
|
|
303
|
-
case "key":
|
|
304
|
-
return await this.buildKeyAuth(params);
|
|
305
|
-
case "agent":
|
|
306
|
-
return buildAgentAuth();
|
|
307
|
-
case "auto":
|
|
308
|
-
default:
|
|
309
|
-
return await this.buildAutoAuth(params);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
/**
|
|
313
|
-
* Builds key-based authentication
|
|
314
|
-
*/
|
|
315
|
-
async buildKeyAuth(params) {
|
|
316
|
-
if (params.privateKey) {
|
|
317
|
-
logger.debug("Using inline private key");
|
|
318
|
-
return {
|
|
319
|
-
privateKey: params.privateKey,
|
|
320
|
-
...(params.passphrase !== undefined ? { passphrase: params.passphrase } : {}),
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
if (params.privateKeyPath) {
|
|
324
|
-
logger.debug("Using private key from path", {
|
|
325
|
-
path: params.privateKeyPath,
|
|
326
|
-
});
|
|
327
|
-
return await loadPrivateKeyFromPath(params.privateKeyPath, params.passphrase);
|
|
328
|
-
}
|
|
329
|
-
return await discoverPrivateKeys(params.passphrase, logger);
|
|
330
|
-
}
|
|
331
|
-
/**
|
|
332
|
-
* Builds automatic authentication (tries password, then key, then agent)
|
|
333
|
-
*/
|
|
334
|
-
async buildAutoAuth(params) {
|
|
335
|
-
if (params.password) {
|
|
336
|
-
logger.debug("Auto auth: trying password");
|
|
337
|
-
return { password: params.password };
|
|
338
|
-
}
|
|
339
|
-
try {
|
|
340
|
-
logger.debug("Auto auth: trying key authentication");
|
|
341
|
-
return await this.buildKeyAuth(params);
|
|
342
|
-
}
|
|
343
|
-
catch {
|
|
344
|
-
logger.debug("Auto auth: key authentication failed, trying agent");
|
|
345
|
-
}
|
|
346
|
-
try {
|
|
347
|
-
return buildAgentAuth();
|
|
348
|
-
}
|
|
349
|
-
catch {
|
|
350
|
-
throw createAuthError("No suitable authentication method found", "Provide a password, private key, or ensure SSH agent is running");
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
292
|
async notifySessionClose(sessionId) {
|
|
354
293
|
const listenerTimeoutMs = 5_000;
|
|
355
294
|
const runListener = async (listener) => {
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -272,9 +272,9 @@ export declare const EnsureServiceSchema: z.ZodObject<{
|
|
|
272
272
|
sessionId: z.ZodString;
|
|
273
273
|
name: z.ZodString;
|
|
274
274
|
state: z.ZodEnum<{
|
|
275
|
+
stopped: "stopped";
|
|
275
276
|
enabled: "enabled";
|
|
276
277
|
started: "started";
|
|
277
|
-
stopped: "stopped";
|
|
278
278
|
restarted: "restarted";
|
|
279
279
|
disabled: "disabled";
|
|
280
280
|
}>;
|
package/docs/adding-a-device.md
CHANGED
|
@@ -72,12 +72,37 @@ returned token with the installer in Step 2 or the returned npm commands.
|
|
|
72
72
|
## Step 2 — Run the bootstrap on the new device
|
|
73
73
|
|
|
74
74
|
The Linux/Windows bootstrap installs the package, enrolls the machine, and
|
|
75
|
-
registers startup so the agent reconnects after restarts.
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
registers startup so the agent reconnects after restarts. On Linux/WSL,
|
|
76
|
+
the user-mode installer automatically installs verified **Node 26 LTS** into
|
|
77
|
+
the user's private directory if Node.js/npm is missing or too old. It checks
|
|
78
|
+
the official Node.js release signature and SHA-256 checksum before using the
|
|
79
|
+
binary; no sudo, system-wide Node changes or additional commands are needed.
|
|
80
|
+
System-wide Linux services still require a trusted system-installed Node
|
|
81
|
+
runtime. On Windows, if Node.js is missing, the installer attempts to install
|
|
82
|
+
the official Active LTS through Windows Package Manager (WinGet). The
|
|
83
|
+
dashboard-generated command is the shortest path; the manual commands below
|
|
84
|
+
are alternatives if you already have a one-time token.
|
|
78
85
|
|
|
79
86
|
### Linux / WSL
|
|
80
87
|
|
|
88
|
+
**Same-device browser setup (recommended for Linux/WSL with a browser):**
|
|
89
|
+
|
|
90
|
+
From the authenticated dashboard's **Add Device** tab, copy the
|
|
91
|
+
**Linux / WSL: Set up with your browser** command and run it in the
|
|
92
|
+
device's own terminal. It installs a verified user-local Node LTS if needed,
|
|
93
|
+
installs the agent and prints an HTTPS approval link. Open that link in a
|
|
94
|
+
browser on the **same device** (including a Windows browser that can reach
|
|
95
|
+
WSL loopback), sign in, choose the initial policy and click **Approve This
|
|
96
|
+
Device**. The one-time enrollment token is handed directly to the agent's
|
|
97
|
+
temporary `127.0.0.1` listener; it is never copied to a chat, terminal
|
|
98
|
+
argument or browser URL. The listener accepts only the control-plane origin
|
|
99
|
+
plus a random one-time link challenge and expires after 10 minutes. Browser
|
|
100
|
+
privacy/localhost network protections must allow the connection. If the
|
|
101
|
+
browser is on another machine, use the existing manual command instead.
|
|
102
|
+
|
|
103
|
+
For **headless or remote-only devices**, the existing manually generated
|
|
104
|
+
one-time token and installation command remain supported:
|
|
105
|
+
|
|
81
106
|
```bash
|
|
82
107
|
curl -fsSL https://raw.githubusercontent.com/oaslananka/ssh-mcp-pro/main/scripts/install-agent.sh -o install-agent.sh
|
|
83
108
|
bash install-agent.sh \
|
|
@@ -86,20 +111,73 @@ bash install-agent.sh \
|
|
|
86
111
|
--alias office-pc
|
|
87
112
|
```
|
|
88
113
|
|
|
89
|
-
This creates a **user** systemd service and enables linger
|
|
90
|
-
|
|
91
|
-
|
|
114
|
+
This creates a **user** systemd service and enables linger. On a normal
|
|
115
|
+
Linux installation, that lets the agent survive logout and start with the
|
|
116
|
+
systemd user manager at boot. **WSL is different:** Microsoft documents that
|
|
117
|
+
systemd services do **not** keep a WSL instance alive. Windows can shut down
|
|
118
|
+
an idle WSL instance even when the service is enabled and `Linger=yes`.
|
|
119
|
+
For an always-on agent on a Windows PC, use the **native Windows installer**
|
|
120
|
+
below instead. Only use WSL as a persistent agent host if you deliberately
|
|
121
|
+
configure and verify its Windows-side startup/lifetime behavior; the Linux
|
|
122
|
+
installer does not silently create a Windows task or disable WSL idling.
|
|
123
|
+
See [Microsoft's WSL systemd documentation](https://learn.microsoft.com/en-us/windows/wsl/systemd).
|
|
124
|
+
|
|
125
|
+
If enabling linger is denied, the installer reports **incomplete setup**
|
|
126
|
+
instead of claiming success: even on ordinary Linux, the running agent may
|
|
127
|
+
disconnect when the user logs out. Ask an administrator to run
|
|
128
|
+
`sudo loginctl enable-linger <linux-username>`, then verify
|
|
129
|
+
`loginctl show-user <linux-username> -p Linger` reports `Linger=yes`.
|
|
130
|
+
This repair does **not** require a new enrollment token. Pass `--system`
|
|
131
|
+
(with `sudo`) to install a system-wide service instead.
|
|
92
132
|
|
|
93
133
|
### Windows (PowerShell)
|
|
94
134
|
|
|
95
135
|
```powershell
|
|
96
|
-
|
|
97
|
-
./install-agent.ps1 -Server https://your-control-plane.example.com -Token <one-time-token> -Alias office-pc
|
|
136
|
+
Invoke-RestMethod https://raw.githubusercontent.com/oaslananka/ssh-mcp-pro/main/scripts/install-agent.ps1 -OutFile install-agent.ps1
|
|
137
|
+
& ([scriptblock]::Create((Get-Content -LiteralPath ./install-agent.ps1 -Raw))) -Server 'https://your-control-plane.example.com' -Token '<one-time-token>' -Alias 'office-pc'
|
|
98
138
|
```
|
|
99
139
|
|
|
100
140
|
This registers a Scheduled Task that runs the agent at logon and restarts it
|
|
101
|
-
on failure.
|
|
102
|
-
|
|
141
|
+
on failure. The dashboard's Windows one-liner is preferred: it downloads from
|
|
142
|
+
your authenticated HTTPS control plane and uses an in-memory script block,
|
|
143
|
+
so no machine-wide PowerShell execution-policy change is needed. The
|
|
144
|
+
installer invokes npm and the agent through their `.cmd` wrappers to avoid
|
|
145
|
+
blocked npm/agent `.ps1` shims. Review the installer source and only use a
|
|
146
|
+
trusted server. If Node.js is missing, WinGet will download and install
|
|
147
|
+
`OpenJS.NodeJS.LTS` from its official `winget` source, potentially prompting
|
|
148
|
+
for Windows administrator approval (UAC). Nothing bypasses that prompt. The
|
|
149
|
+
installer refreshes its own PATH and continues automatically when Node is
|
|
150
|
+
available. If WinGet is unavailable or the user declines installation, the
|
|
151
|
+
script exits with actionable guidance to install Node LTS from
|
|
152
|
+
https://nodejs.org/en/download and rerun the command. An *outdated* Windows Node
|
|
153
|
+
installation is not silently upgraded. On Linux/WSL, the user-scope fallback
|
|
154
|
+
also requires curl, tar, SHA-256 and GPG signature-verification tools; it
|
|
155
|
+
reports missing prerequisites rather than running unverified downloads.
|
|
156
|
+
The Node runtime and npm-installed agent are kept under
|
|
157
|
+
~/.local/share/ssh-mcp-pro/, outside system locations.
|
|
158
|
+
|
|
159
|
+
### Repair an existing Windows agent task
|
|
160
|
+
|
|
161
|
+
Earlier Windows installations may still have Task Scheduler's default 72-hour
|
|
162
|
+
process limit even though new installations now set unlimited runtime. If your
|
|
163
|
+
existing agent disconnects after a long uptime, open **administrator PowerShell**
|
|
164
|
+
and approve the normal UAC prompt. Run this **without re-enrolling**:
|
|
165
|
+
|
|
166
|
+
```powershell
|
|
167
|
+
Invoke-RestMethod https://raw.githubusercontent.com/oaslananka/ssh-mcp-pro/main/scripts/repair-agent-task.ps1 -OutFile repair-agent-task.ps1
|
|
168
|
+
& ([scriptblock]::Create((Get-Content -LiteralPath ./repair-agent-task.ps1 -Raw)))
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
The repair does not require a new enrollment token, does not reinstall Node or
|
|
172
|
+
npm, and does not restart the running agent. It verifies that the task runs
|
|
173
|
+
`ssh-mcp-pro-agent.cmd run`, then changes only `ExecutionTimeLimit` from
|
|
174
|
+
`PT72H` to `PT0S`. If the task already has unlimited runtime, it succeeds
|
|
175
|
+
without changes. If permissions are insufficient or the task looks unfamiliar,
|
|
176
|
+
it stops and reports an error instead of bypassing UAC or overwriting settings.
|
|
177
|
+
The existing restart-on-failure policy is preserved.
|
|
178
|
+
|
|
179
|
+
For a fully headless host that must run before any user logs in, run the agent
|
|
180
|
+
under a service manager such as NSSM instead.
|
|
103
181
|
|
|
104
182
|
## Step 3 — Verify
|
|
105
183
|
|
|
@@ -114,6 +192,100 @@ enrollment, **not** live connectivity. In the dashboard, open **Enrolled
|
|
|
114
192
|
Devices** and verify the device reports **Live Online**. The audit log
|
|
115
193
|
should contain `enrollment_token_created` and `agent_connected`.
|
|
116
194
|
|
|
195
|
+
## Find files after connecting a device
|
|
196
|
+
|
|
197
|
+
Once a device is **Live Online** with an `operations` or explicitly
|
|
198
|
+
file-read-enabled policy, you can ask your MCP client:
|
|
199
|
+
|
|
200
|
+
> Find JSON configuration files on my connected device.
|
|
201
|
+
|
|
202
|
+
The hosted `file_search` tool needs the device alias and a `name_pattern`
|
|
203
|
+
such as `*.json` or `config`. You do not need to know the complete file path.
|
|
204
|
+
It searches the local policy's allowed folders by default, or you can specify
|
|
205
|
+
an allowed `root_path` to narrow the search. Results contain file paths only,
|
|
206
|
+
not file contents; use `file_read` to inspect a selected file afterward.
|
|
207
|
+
|
|
208
|
+
Searches default to depth 3 and up to 20 matches. At most 2,000 entries,
|
|
209
|
+
128 directories, depth 5 and 50 matches are considered per invocation.
|
|
210
|
+
Hidden files are excluded unless requested. The response marks incomplete
|
|
211
|
+
searches as truncated; narrow the root or pattern for more precise results.
|
|
212
|
+
The agent skips symbolic links and does not search paths denied by its local
|
|
213
|
+
policy. Read-only profiles do not gain file access automatically.
|
|
214
|
+
|
|
215
|
+
## Find a setting inside a file without knowing its location
|
|
216
|
+
|
|
217
|
+
When `files.read` is enabled, you can ask your AI client:
|
|
218
|
+
|
|
219
|
+
> On my connected device, find which configuration file contains
|
|
220
|
+
> `mode=advanced`, and show me where it appears.
|
|
221
|
+
|
|
222
|
+
The hosted `file_content_search` tool accepts `agent_id_or_alias` and a
|
|
223
|
+
literal `query`. It searches locally allowed folders, returning one matching
|
|
224
|
+
line number and a short snippet **per file**; it never edits files. You can
|
|
225
|
+
optionally restrict the filename with `name_pattern` (e.g. `*.ini`) or an
|
|
226
|
+
allowed `root_path`. The query is plain text, **not a regular expression**,
|
|
227
|
+
and is case-insensitive by default unless `case_sensitive: true` is passed.
|
|
228
|
+
|
|
229
|
+
One search examines at most 128 files of up to 128 KiB each, traverses at
|
|
230
|
+
most 128 directories and 2,000 entries, and returns at most 50 matches
|
|
231
|
+
(default 20). Depth defaults to 3 (maximum 5). Binary/invalid UTF-8 and
|
|
232
|
+
oversized files are skipped, hidden paths are excluded unless explicitly
|
|
233
|
+
requested, and symbolic links are not followed. A `truncated: true` result
|
|
234
|
+
means the scan or output limit was reached: narrow the filename/root and
|
|
235
|
+
search again. Long files can instead be inspected with paged `file_read`.
|
|
236
|
+
|
|
237
|
+
The control plane masks the search phrase in stored action metadata.
|
|
238
|
+
Matched snippets are still sent to the authenticated AI client, so avoid
|
|
239
|
+
requesting secrets or credentials unless they are genuinely needed.
|
|
240
|
+
|
|
241
|
+
## Preview and apply one precise file edit
|
|
242
|
+
|
|
243
|
+
On an authorized device, clients with **both** `files.read` and
|
|
244
|
+
`files.write` can call `file_replace` instead of overwriting a whole file.
|
|
245
|
+
Give it an existing path, an exact `old_text` snippet and a `new_text` value.
|
|
246
|
+
The default `dry_run: true` returns a short diff and `before_sha256`
|
|
247
|
+
**without changing the file**.
|
|
248
|
+
|
|
249
|
+
To apply, call the same tool with `dry_run: false` and
|
|
250
|
+
`expected_sha256` equal to the preview's `before_sha256`. It replaces
|
|
251
|
+
**exactly one** occurrence, stages the new content as a temporary file,
|
|
252
|
+
checks the file hash again just before replacing the original, and reports
|
|
253
|
+
`FILE_CONFLICT` if it has changed. Reinspect/repreview after a conflict.
|
|
254
|
+
This is a best-effort optimistic stale-write check, **not** an atomic
|
|
255
|
+
compare-and-swap guarantee against concurrent external writes.
|
|
256
|
+
|
|
257
|
+
The agent refuses ambiguous/missing matches, non-UTF-8 text, files over
|
|
258
|
+
1 MiB and edits that exceed its output limits. Files outside the local
|
|
259
|
+
allowlist and read-only profiles cannot use this tool. Normal
|
|
260
|
+
`file_write` remains unchanged for full-file edits.
|
|
261
|
+
|
|
262
|
+
## Follow a long-running command without keeping a terminal open
|
|
263
|
+
|
|
264
|
+
When the agent's `shell.exec` capability is enabled, you can ask an AI
|
|
265
|
+
client: *"Start the test runner on my enrolled device, show its output, send
|
|
266
|
+
input if it asks, and stop it when I tell you."* The agent exposes four
|
|
267
|
+
tools that operate on a **user-owned process session**:
|
|
268
|
+
|
|
269
|
+
1. `process_start`: provide `agent_id_or_alias` and `command`, optionally
|
|
270
|
+
`cwd` and `max_runtime_seconds` (1–600; default 300). Save the returned
|
|
271
|
+
`process_id`; the command runs on that device, not on the cloud server.
|
|
272
|
+
2. `process_read`: supply the same agent and process ID, plus a `cursor`
|
|
273
|
+
(start at 0). It returns status, exit code, a bounded list of stdout/stderr
|
|
274
|
+
chunks, and `next_cursor` for the next read.
|
|
275
|
+
3. `process_input`: send short stdin text or close stdin. Do not type
|
|
276
|
+
passwords/tokens into shell commands or client conversations.
|
|
277
|
+
4. `process_stop`: terminate the process and its descendants when finished.
|
|
278
|
+
|
|
279
|
+
Sessions do not survive agent restart, disconnection or permission revocation.
|
|
280
|
+
A device supports up to four simultaneous managed processes; runtime and
|
|
281
|
+
output memory are bounded. When output exceeds the local 64 KiB ring buffer,
|
|
282
|
+
`dropped_before_cursor` indicates earlier content that can no longer be
|
|
283
|
+
retrieved. Finished process results are retained for at most two minutes.
|
|
284
|
+
|
|
285
|
+
The control plane masks managed command and stdin payloads in durable action
|
|
286
|
+
metadata; the AI client may still receive and display command output. This
|
|
287
|
+
tool does not elevate shell permissions or bypass the local device policy.
|
|
288
|
+
|
|
117
289
|
## Changing a policy later
|
|
118
290
|
|
|
119
291
|
Capabilities are server-authoritative and pushed live to a connected agent —
|
|
@@ -144,6 +316,10 @@ restart is required.
|
|
|
144
316
|
(`systemctl --user status ssh-mcp-pro-agent` on Linux, the Scheduled Task on
|
|
145
317
|
Windows) and that the device can reach the control plane URL over HTTPS.
|
|
146
318
|
- **Enrollment fails with an expired token**: tokens are single-use and
|
|
147
|
-
short-lived.
|
|
319
|
+
short-lived. An unused, never-connected pending device is removed after its
|
|
320
|
+
token expires, by the control plane's existing periodic cleanup (once per
|
|
321
|
+
minute). You can then generate a fresh command with the same alias; if the
|
|
322
|
+
alias is still reserved, refresh the device list after the next cleanup.
|
|
323
|
+
Already enrolled or revoked devices and the security audit remain intact.
|
|
148
324
|
- **WebSocket error on start**: confirm Node 22.22+ or 24+, DNS/TLS
|
|
149
325
|
connectivity to the configured server, and that the agent has not been revoked.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<div class="docs-hero">
|
|
2
|
+
<span class="docs-kicker">SSH MCP Pro · API reference</span>
|
|
3
|
+
<h2>SSH automation, with control built in.</h2>
|
|
4
|
+
<p>Integrate SSH workflows into MCP clients with strict host verification, scoped sessions and clear operational policies. Find the API you need without digging through configuration tables.</p>
|
|
5
|
+
<div class="docs-hero-actions">
|
|
6
|
+
<a href="https://oaslananka.github.io/ssh-mcp-pro/modules.html">Explore the API →</a>
|
|
7
|
+
<a class="docs-action-quiet" href="#quickstart">Start in minutes</a>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div class="docs-tiles">
|
|
12
|
+
<a class="docs-tile" href="#quickstart">
|
|
13
|
+
<span class="docs-pill">01 · Start</span>
|
|
14
|
+
<span class="docs-tile-title">Install & connect →</span>
|
|
15
|
+
<span class="docs-tile-desc">Launch the stdio MCP server and add it to your client.</span>
|
|
16
|
+
</a>
|
|
17
|
+
<a class="docs-tile" href="https://oaslananka.github.io/ssh-mcp-pro/modules.html">
|
|
18
|
+
<span class="docs-pill">02 · Reference</span>
|
|
19
|
+
<span class="docs-tile-title">Browse modules →</span>
|
|
20
|
+
<span class="docs-tile-desc">Explore public functions, classes, interfaces and types.</span>
|
|
21
|
+
</a>
|
|
22
|
+
<a class="docs-tile" href="https://github.com/oaslananka/ssh-mcp-pro/blob/main/docs/security/threat-model.md">
|
|
23
|
+
<span class="docs-pill">03 · Safety</span>
|
|
24
|
+
<span class="docs-tile-title">Understand the security model →</span>
|
|
25
|
+
<span class="docs-tile-desc">Check session, host-key and command policy boundaries.</span>
|
|
26
|
+
</a>
|
|
27
|
+
<a class="docs-tile" href="https://github.com/oaslananka/ssh-mcp-pro">
|
|
28
|
+
<span class="docs-pill">04 · Project</span>
|
|
29
|
+
<span class="docs-tile-title">View the source →</span>
|
|
30
|
+
<span class="docs-tile-desc">Read full guides, examples, release notes and contribute.</span>
|
|
31
|
+
</a>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
## Quickstart
|
|
35
|
+
|
|
36
|
+
Install the public package using Node.js 22.22.2 or newer:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install --global ssh-mcp-pro
|
|
40
|
+
ssh-mcp-pro --version
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Register a **stdio MCP server** in a compatible MCP client:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"name": "ssh-mcp-pro",
|
|
48
|
+
"command": "ssh-mcp-pro",
|
|
49
|
+
"type": "stdio"
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Each client has a different configuration file. Use the [installation and client-specific setup guide](https://github.com/oaslananka/ssh-mcp-pro/blob/main/INSTALL.md) to place the configuration correctly.
|
|
54
|
+
|
|
55
|
+
## First connection
|
|
56
|
+
|
|
57
|
+
Begin with read-only discovery and strict host-key verification. For example, ask your MCP client:
|
|
58
|
+
|
|
59
|
+
> List my configured SSH hosts, explain the active SSH policy, connect to a selected host with strict host-key verification, and report its operating system.
|
|
60
|
+
|
|
61
|
+
Remote mutations remain subject to policy. Review [secure defaults](https://github.com/oaslananka/ssh-mcp-pro#security-defaults) before enabling any write or privileged operations.
|
|
62
|
+
|
|
63
|
+
## Find your way around
|
|
64
|
+
|
|
65
|
+
The **left sidebar** lists API modules and symbols. **Search** in the top bar finds named members; the **right sidebar** (on wide screens) lists headings on the current page. Use the visible moon/sun control to switch appearance, or select OS/Light/Dark under Settings.
|
|
66
|
+
|
|
67
|
+
For environment variables, tool profiles, examples and troubleshooting, see the [main README](https://github.com/oaslananka/ssh-mcp-pro#configuration) and [repository documentation](https://github.com/oaslananka/ssh-mcp-pro/tree/main/docs).
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Offline encrypted backup restore verification
|
|
2
|
+
|
|
3
|
+
Use this **before** authorizing a hosted release or rollback. It does **not**
|
|
4
|
+
change the running service or access live data. Backup existence, filename,
|
|
5
|
+
size or encryption header alone does not prove recoverability.
|
|
6
|
+
|
|
7
|
+
## Independent recovery host
|
|
8
|
+
|
|
9
|
+
On an authorized isolated Linux host with Python 3, age and OpenSSL, obtain a
|
|
10
|
+
**separately stored encrypted backup** and its matching age identity using
|
|
11
|
+
your approved secure recovery process. Never paste the identity/private key
|
|
12
|
+
into chat, support requests, CI logs or a Git repository. Store the identity
|
|
13
|
+
as a private file (for example, file permissions 0600).
|
|
14
|
+
|
|
15
|
+
From a clean repository checkout, run:
|
|
16
|
+
|
|
17
|
+
~~~bash
|
|
18
|
+
python3 scripts/verify-encrypted-backup.py \
|
|
19
|
+
--archive /secure/offsite/ssh-mcp-pro-backup.tar.gz.age \
|
|
20
|
+
--identity /secure/offsite/age-identity.txt
|
|
21
|
+
~~~
|
|
22
|
+
|
|
23
|
+
Both .tar.age and .tar.gz.age formats are supported. The verifier requires a
|
|
24
|
+
consistent SQLite sshautomator.db including the users, agents and audit_events
|
|
25
|
+
tables, and matching Ed25519 PEM key pairs in control-plane-ed25519.json and
|
|
26
|
+
jwt-ed25519.json. It validates database integrity and foreign keys, and
|
|
27
|
+
validates each signing-key pair using OpenSSL. The archive is **never**
|
|
28
|
+
extracted directly to an embedded path: symbolic links, hardlinks and
|
|
29
|
+
parent-path traversal are rejected.
|
|
30
|
+
|
|
31
|
+
Success prints a small JSON status without database content or key material.
|
|
32
|
+
Any failure exits nonzero with a generic error code. Plaintext stays only in
|
|
33
|
+
a private temporary directory which is deleted automatically. Live files are
|
|
34
|
+
never overwritten.
|
|
35
|
+
|
|
36
|
+
**Release acceptance remains incomplete** until the backup is fresh and truly
|
|
37
|
+
offsite, its decryption identity is independently recoverable, and a controlled
|
|
38
|
+
isolated restore proves application startup, signed agent actions, OAuth
|
|
39
|
+
continuity, and rollback. Synthetic fixture tests are not production approval.
|
|
40
|
+
|
|
41
|
+
Run synthetic tests (no production credentials or data):
|
|
42
|
+
|
|
43
|
+
~~~bash
|
|
44
|
+
python3 test/unit/backup_restore_verifier_test.py
|
|
45
|
+
~~~
|
package/docs/coolify.md
CHANGED
|
@@ -27,3 +27,12 @@ GITHUB_CALLBACK_URL=https://ssh-mcp-pro.oaslananka.dev/oauth/callback/github
|
|
|
27
27
|
Dashboard login callback URLs additionally use `/auth/callback/google` and `/auth/callback/github`; register both with the relevant OAuth providers. Keep authentication allowlists configured as appropriate. Do not enable anonymous access as a workaround.
|
|
28
28
|
|
|
29
29
|
Before deployment verify local OAuth login, dashboard and MCP flow. After deployment check health, login callbacks, device connectivity, and persistent state across a controlled restart. Do not run the SSH test fixture service in production.
|
|
30
|
+
|
|
31
|
+
## Encrypted backup recovery gate
|
|
32
|
+
|
|
33
|
+
Before changing the hosted image, validate a fresh offsite encrypted SQLite
|
|
34
|
+
and signing-key backup on an independent recovery host. Follow
|
|
35
|
+
[offline backup restore verification](backup-restore-verification.md).
|
|
36
|
+
Passing offline integrity checks alone is **not** production restore or
|
|
37
|
+
rollback acceptance: demonstrate a controlled service startup and signed
|
|
38
|
+
agent/client action before authorizing the release.
|
|
@@ -9,7 +9,7 @@ it adds the one-command shortcuts.
|
|
|
9
9
|
```bash
|
|
10
10
|
git clone https://github.com/oaslananka/ssh-mcp-pro.git
|
|
11
11
|
cd ssh-mcp-pro
|
|
12
|
-
task install # or: corepack enable && corepack prepare pnpm@11.28.
|
|
12
|
+
task install # or: corepack enable && corepack prepare pnpm@11.28.11 --activate && pnpm install --frozen-lockfile
|
|
13
13
|
task verify # lint + format:check + typecheck + test + build
|
|
14
14
|
```
|
|
15
15
|
|
|
@@ -13,7 +13,7 @@ LTS line). This is expected, not an oversight.
|
|
|
13
13
|
|
|
14
14
|
## Package manager
|
|
15
15
|
|
|
16
|
-
pnpm `11.28.
|
|
16
|
+
pnpm `11.28.11`, enforced via `packageManager` in `package.json` and `engine-strict=true`.
|
|
17
17
|
npm/yarn are not supported installation paths for *developing* this repo (consumers
|
|
18
18
|
installing the published package via npm/npx are unaffected — see
|
|
19
19
|
[README.md#installation](../../README.md#installation)).
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Engineering evidence only — not a privacy notice or terms of service.**
|
|
4
4
|
This document describes the repository's remote control-plane source
|
|
5
|
-
on 2026-11-
|
|
5
|
+
on 2026-11-10, **not necessarily the version deployed in production**.
|
|
6
6
|
It does not claim legal compliance or promise any retention period.
|
|
7
7
|
|
|
8
8
|
## Data handled in the remote control plane
|
|
@@ -12,6 +12,7 @@ It does not claim legal compliance or promise any retention period.
|
|
|
12
12
|
| Account identity | GitHub ID/login/name or Google ID/email/name when configured | SQLite `users` in [remote store](../../src/remote/store.ts) |
|
|
13
13
|
| Dashboard sessions | Random browser session token, a stored token hash, user ID and expiry | `dashboard_sessions` in [remote store](../../src/remote/store.ts) and [dashboard](../../src/remote/web-dashboard.ts) |
|
|
14
14
|
| OAuth clients/codes | Client identity, redirect URIs, scopes and hashed authorization codes with expiry and use status | `oauth_clients` and `oauth_authorization_codes` in [remote store](../../src/remote/store.ts) |
|
|
15
|
+
| OAuth refresh sessions | Hashed rotating refresh tokens bound to OAuth client, user, resource and scopes, with a fixed 30-day maximum lifetime, use/revocation timestamps and family-replay invalidation | `oauth_refresh_tokens` in [remote store](../../src/remote/store.ts) |
|
|
15
16
|
| Devices | Alias, public key, policy, status, host metadata and last seen | `agents` in [remote store](../../src/remote/store.ts) |
|
|
16
17
|
| Enrollment | Hashed one-time tokens with expiration and use status | `agent_enrollment_tokens` in [remote store](../../src/remote/store.ts) |
|
|
17
18
|
| Remote actions | Tool and capability, **arguments**, status, deadline, **result**, and error details | `actions` in [remote store](../../src/remote/store.ts) |
|
|
@@ -33,6 +34,7 @@ in the action table.
|
|
|
33
34
|
and can be used only once. The existing minute maintenance tick also
|
|
34
35
|
removes physically expired code/token rows. Non-expired rows are retained
|
|
35
36
|
even if already used.
|
|
37
|
+
- Refresh grants are rotated after use, expire after at most 30 days, and can be explicitly revoked through `/oauth/revoke`. Expired refresh records are pruned by the existing maintenance tick. A replayed used refresh token revokes its token family.
|
|
36
38
|
- The periodic cleanup also clears in-memory OAuth and connection state.
|
|
37
39
|
It does **not** impose automatic retention/deletion on users, OAuth
|
|
38
40
|
clients, devices, action history, audit events or infrastructure logs.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="SSH MCP Pro">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="a" x1="0" y1="0" x2="1" y2="1">
|
|
4
|
+
<stop offset="0%" stop-color="#102e78"/>
|
|
5
|
+
<stop offset="100%" stop-color="#3678e7"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<rect width="64" height="64" rx="16" fill="url(#a)"/>
|
|
9
|
+
<path d="m16 23 12 10-12 10" fill="none" stroke="#fff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
10
|
+
<path d="M34 43h14" fill="none" stroke="#fff" stroke-width="5" stroke-linecap="round"/>
|
|
11
|
+
<circle cx="47" cy="19" r="4" fill="#9ee8fa"/>
|
|
12
|
+
</svg>
|