enterprise-ssh-mcp-server 0.3.2 → 0.3.4

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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.4 - 2026-10-25
4
+
5
+ - Add `ssh_saved_credential_status` and `ssh_run_saved_credential` for Windows user-bound DPAPI SSH credentials; MCP receives only a credential alias.
6
+ - Add interactive `Set-SshMcpCredential.ps1` enrollment with hidden password input, per-user ACLs, host/port/username binding and mandatory independently verified SHA-256 host-key pin.
7
+ - Read secrets via a short-lived local PowerShell child-process pipe, never through MCP tool request fields, native process argv, environment variables, or on-disk plaintext.
8
+ - Execute one-off remote commands using pinned ssh2 host verification; close temporary sessions even on command failure.
9
+ - Add 9 security and integration regressions including a real Windows DPAPI Unicode roundtrip and a disposable-credential live SSH authentication negative test.
10
+ - Update the runtime MCP SDK to >=1.32.2 and Zod to >=4.6.7 to address known runtime security advisories; adapt Zod 4 record schemas.
11
+ - Production runtime audit reports zero known vulnerabilities at release time; actual server password login still requires locally enrolled credentials.
12
+
13
+ ## 0.3.3 - 2026-10-25
14
+
15
+ - Add an explicit, optional one-shot InstaBox `ephemeralToken` credential source for `ssh_run_openssh_temporary` and `ssh_run_openssh`; no prior per-token setup script is needed.
16
+ - Preserve local CA fingerprint pinning or native OpenSSH known_hosts verification; an untrusted host is still rejected before sending credentials.
17
+ - Do not expose a one-shot token in native SSH process arguments or returned output; isolate transient config files and clean them up.
18
+ - Keep `usernameEnvVar` as the preferred option when avoiding potentially logged MCP tool arguments, and document the privacy tradeoffs.
19
+ - Add integration coverage for one-shot tokens, response redaction, temporary file cleanup, input validation, and missing CA trust.
20
+
3
21
  ## 0.3.2 - 2026-10-25
4
22
 
5
23
  - Refactor MCP tool registration into domain-focused modules while preserving the stdio entry point and existing tool names.
package/README.md CHANGED
@@ -82,6 +82,16 @@ macOS / Linux 全局安装后可以直接使用命令入口:
82
82
 
83
83
  ## 本地开发
84
84
 
85
+ ### Windows 加密密码与临时 SSH 连接
86
+
87
+ 新增 `ssh_saved_credential_status` 和 `ssh_run_saved_credential`。
88
+ 先在本机 PowerShell 交互式录入密码,由 Windows DPAPI 加密保存;之后
89
+ MCP 仅需 `credentialId` 与远程命令,不再传输明文 SSH 密码。
90
+ 凭据绑定主机、用户名、端口与独立核实的 SSH 主机公钥指纹,每次执行
91
+ 均单独连接并在结束后断开。参见
92
+ [`docs/windows-dpapi-credentials.md`](docs/windows-dpapi-credentials.md)。
93
+
94
+
85
95
  ```powershell
86
96
  npm install
87
97
  npm run build
@@ -174,9 +184,11 @@ InstaBox 官方的 Connect → Create token 会生成形如 `ssh ibssh_…@<host
174
184
 
175
185
  永久信任流程:先按上面步骤配置可信 CA pin,再调用 `ssh_probe_host_key` 检查证书,并在确认需要写入永久信任后调用 `ssh_trust_host_ca`,将探测得到的 `certificateAuthority.knownHostsEntry` 登记到本机 `~/.ssh/known_hosts`。该工具会再次校验 CA 公钥与本地 pin 完全一致;它不会自行建立新的信任锚,也不会覆盖同一主机已存在的冲突 CA。
176
186
 
177
- 临时信任流程:无需修改永久 `known_hosts`。在 MCP 客户端环境中配置经过独立核验的 CA pin 后,调用 `ssh_run_openssh_temporary`,只需传入主机、端口、命令和本地 token 环境变量名。工具会重新探测实时 CA,并要求其指纹与本地 pin 完全匹配;验证失败时不会运行命令。验证通过后才会创建临时 trust store,命令结束即清理。工具调用不接受 `expectedHostCaFingerprint` 或 `confirmedHostCaFingerprint` 参数,防止模型把未验证的探测结果自我确认。
187
+ 临时信任流程:无需修改永久 `known_hosts`。在 MCP 客户端环境中配置经过独立核验的 CA pin 后,调用 `ssh_run_openssh_temporary`。可以使用环境变量名 `usernameEnvVar`,或明确选择一次性的 `ephemeralToken`;两者不能同时传入。工具会重新探测实时 CA,并要求其指纹与本地 pin 完全匹配;验证失败时不会运行命令。验证通过后才会创建临时 trust store,命令结束即清理。工具调用不接受 `expectedHostCaFingerprint` 或 `confirmedHostCaFingerprint` 参数,防止模型把未验证的探测结果自我确认。
188
+
189
+ **认证有两种选择。** 默认推荐将 InstaBox Token 存在 MCP 子进程环境,通过 `usernameEnvVar` 引用;新增可选 `ephemeralToken` 允许在某一次 MCP 请求中直接传入凭据,不需要运行预保存脚本,执行后 MCP server 不持久化该 Token。**注意:MCP 客户端、模型平台、工具传输层及调用日志仍可能记录参数;“单次使用”不意味着聊天或工具日志不会保留秘密。** 不要在不可信或有广泛日志留存的聊天/工具链里使用该参数。对于高权限、长期有效的 Token,推荐本机安全凭据存储。直接把 `ibssh_…` token 放进 `host` 或 `username` 参数仍会被拒绝。
178
190
 
179
- 为避免在工具参数或 `ssh.exe` 命令行中传递 token,InstaBox token 必须设置在 MCP server 进程的本地环境变量 `SSH_MCP_INSTABOX_TOKEN` 中,再通过 `usernameEnvVar` 引用;直接把 `ibssh_…` token 放进 `host` 或 `username` 参数会被拒绝。程序会将用户名短暂写入系统临时目录中的 OpenSSH 配置文件,并在子进程结束(包括启动失败)后清理临时目录。POSIX 系统会以 `0600` 创建文件;Windows 上的访问保护取决于当前用户临时目录的 ACL,因此不要在共享或权限宽松的 Windows 账户环境中使用该方式。不要把真实 token 写进仓库或共享配置。
191
+ 两种方式均通过隔离的临时 OpenSSH 配置传入 SSH 用户名,使 Token 不出现在原生 `ssh.exe` 的命令行参数。程序会将 Token 短暂写入系统临时目录中的 OpenSSH 配置文件,并在子进程结束(包括启动失败)后清理;POSIX 系统会以 `0600` 创建文件,Windows 访问保护取决于临时目录 ACL。不要在共享或权限宽松的 Windows 账户环境中使用此方式,也不要把真实 token 写进仓库或共享配置。
180
192
 
181
193
  示例(仅在已核验并明确确认 InstaBox 主机 CA 指纹后使用;临时信任,不写永久 `known_hosts`):
182
194
 
@@ -189,6 +201,19 @@ InstaBox 官方的 Connect → Create token 会生成形如 `ssh ibssh_…@<host
189
201
  }
190
202
  ```
191
203
 
204
+ `ephemeralToken` 示例(**演示占位值,不是真实凭据**;仍需事先在本机核验并固定 CA pin):
205
+
206
+ ```json
207
+ {
208
+ "host": "ssh.instabox.sh",
209
+ "port": 2222,
210
+ "ephemeralToken": "ibssh_test_fixture_replace_for_one_request",
211
+ "command": "uname -a"
212
+ }
213
+ ```
214
+
215
+ 其他普通 SSH 主机可以直接调用 `ssh_connect` 并提供 `host`、`port`、`username`、`password` 或私钥信息,获得 `sessionId` 后执行命令/SFTP,再 `ssh_disconnect`。不需要新建 Profile、运行本机脚本或者重新启动 MCP。仅 InstaBox 等使用 OpenSSH 主机证书而不被 `ssh2` 支持的网关,需要用一次性原生 OpenSSH 命令工具;它目前不支持持久交互 Shell/SFTP。
216
+
192
217
  `ssh_probe_host_key` 的返回值包含 `certificateAuthority.fingerprint` 和 `certificateAuthority.knownHostsEntry`。前者必须通过可信渠道独立核验后写入本地 pin 配置,后者只有在 CA 身份与 pin 匹配后才应加入 OpenSSH `known_hosts`;探测结果本身不等于信任。
193
218
 
194
219
  InstaBox token 用户名会在 Profile/会话结果和调试日志中脱敏。不要把 token 写入仓库或共享 `.env`;如果 token 已经暴露在聊天、日志或其他不可信位置,请在 InstaBox 中撤销并重新创建。
@@ -17,29 +17,11 @@ declare const ptySchema: z.ZodObject<{
17
17
  height: z.ZodOptional<z.ZodNumber>;
18
18
  width: z.ZodOptional<z.ZodNumber>;
19
19
  term: z.ZodOptional<z.ZodString>;
20
- }, "strip", z.ZodTypeAny, {
21
- rows?: number | undefined;
22
- cols?: number | undefined;
23
- height?: number | undefined;
24
- width?: number | undefined;
25
- term?: string | undefined;
26
- }, {
27
- rows?: number | undefined;
28
- cols?: number | undefined;
29
- height?: number | undefined;
30
- width?: number | undefined;
31
- term?: string | undefined;
32
- }>;
20
+ }, z.core.$strip>;
33
21
  declare const expectedFileSchema: z.ZodObject<{
34
22
  path: z.ZodString;
35
- sha256: z.ZodUnion<[z.ZodString, z.ZodLiteral<"absent">]>;
36
- }, "strip", z.ZodTypeAny, {
37
- path: string;
38
- sha256: string;
39
- }, {
40
- path: string;
41
- sha256: string;
42
- }>;
23
+ sha256: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"absent">]>;
24
+ }, z.core.$strip>;
43
25
  type ToolConfig<OutputArgs extends ZodRawShapeCompat | AnySchema, InputArgs extends undefined | ZodRawShapeCompat | AnySchema = undefined> = {
44
26
  title?: string;
45
27
  description?: string;
@@ -48,7 +30,15 @@ type ToolConfig<OutputArgs extends ZodRawShapeCompat | AnySchema, InputArgs exte
48
30
  annotations?: ToolAnnotations;
49
31
  _meta?: Record<string, unknown>;
50
32
  };
51
- declare const remoteCheckNameSchema: z.ZodEnum<["identity", "pwd", "os", "uptime", "disk", "memory", "processes"]>;
33
+ declare const remoteCheckNameSchema: z.ZodEnum<{
34
+ identity: "identity";
35
+ pwd: "pwd";
36
+ os: "os";
37
+ uptime: "uptime";
38
+ disk: "disk";
39
+ memory: "memory";
40
+ processes: "processes";
41
+ }>;
52
42
  type RemoteCheckName = z.infer<typeof remoteCheckNameSchema>;
53
43
  declare function registerTool<OutputArgs extends ZodRawShapeCompat | AnySchema, InputArgs extends undefined | ZodRawShapeCompat | AnySchema = undefined>(name: string, config: ToolConfig<OutputArgs, InputArgs>, cb: ToolCallback<InputArgs>): RegisteredTool | undefined;
54
44
  type ExpectedFile = z.infer<typeof expectedFileSchema>;
@@ -159,8 +149,19 @@ export declare const toolContext: {
159
149
  profiles: ProfileRegistry;
160
150
  runtimeConfig: RuntimeConfigRegistry;
161
151
  reloadEnvState: () => import("../env-reload.js").EnvReloadSnapshot;
162
- wireEncodingSchema: z.ZodDefault<z.ZodEnum<["utf8", "base64"]>>;
163
- remoteCheckNameSchema: z.ZodEnum<["identity", "pwd", "os", "uptime", "disk", "memory", "processes"]>;
152
+ wireEncodingSchema: z.ZodDefault<z.ZodEnum<{
153
+ utf8: "utf8";
154
+ base64: "base64";
155
+ }>>;
156
+ remoteCheckNameSchema: z.ZodEnum<{
157
+ identity: "identity";
158
+ pwd: "pwd";
159
+ os: "os";
160
+ uptime: "uptime";
161
+ disk: "disk";
162
+ memory: "memory";
163
+ processes: "processes";
164
+ }>;
164
165
  DEFAULT_REMOTE_CHECKS: ("identity" | "pwd" | "os" | "uptime" | "disk" | "memory" | "processes")[];
165
166
  REMOTE_CHECK_COMMANDS: Record<"identity" | "pwd" | "os" | "uptime" | "disk" | "memory" | "processes", {
166
167
  title: string;
@@ -183,18 +184,15 @@ export declare const toolContext: {
183
184
  sha256: typeof sha256;
184
185
  editHistory: Map<string, EditRecord>;
185
186
  projectRootSchema: z.ZodOptional<z.ZodString>;
186
- fileEncodingSchema: z.ZodDefault<z.ZodEnum<["utf8", "base64"]>>;
187
- expectedShaSchema: z.ZodUnion<[z.ZodString, z.ZodLiteral<"absent">]>;
187
+ fileEncodingSchema: z.ZodDefault<z.ZodEnum<{
188
+ utf8: "utf8";
189
+ base64: "base64";
190
+ }>>;
191
+ expectedShaSchema: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"absent">]>;
188
192
  expectedFileSchema: z.ZodObject<{
189
193
  path: z.ZodString;
190
- sha256: z.ZodUnion<[z.ZodString, z.ZodLiteral<"absent">]>;
191
- }, "strip", z.ZodTypeAny, {
192
- path: string;
193
- sha256: string;
194
- }, {
195
- path: string;
196
- sha256: string;
197
- }>;
194
+ sha256: z.ZodUnion<readonly [z.ZodString, z.ZodLiteral<"absent">]>;
195
+ }, z.core.$strip>;
198
196
  projectPathSchema: z.ZodString;
199
197
  connectProjectWorkspace: typeof connectProjectWorkspace;
200
198
  inspectRemoteProject: typeof inspectRemoteProject;
@@ -220,19 +218,7 @@ export declare const toolContext: {
220
218
  height: z.ZodOptional<z.ZodNumber>;
221
219
  width: z.ZodOptional<z.ZodNumber>;
222
220
  term: z.ZodOptional<z.ZodString>;
223
- }, "strip", z.ZodTypeAny, {
224
- rows?: number | undefined;
225
- cols?: number | undefined;
226
- height?: number | undefined;
227
- width?: number | undefined;
228
- term?: string | undefined;
229
- }, {
230
- rows?: number | undefined;
231
- cols?: number | undefined;
232
- height?: number | undefined;
233
- width?: number | undefined;
234
- term?: string | undefined;
235
- }>;
221
+ }, z.core.$strip>;
236
222
  compactExecPty: typeof compactExecPty;
237
223
  compactPty: typeof compactPty;
238
224
  entryToJson: typeof entryToJson;
@@ -249,7 +235,7 @@ export declare const toolContext: {
249
235
  sftpSymlink: typeof sftpSymlink;
250
236
  sftpUtimes: typeof sftpUtimes;
251
237
  sftpWriteFile: typeof sftpWriteFile;
252
- modeSchema: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
238
+ modeSchema: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
253
239
  assertNonEmpty: typeof assertNonEmpty;
254
240
  transfers: TransferManager;
255
241
  positivePortSchema: z.ZodNumber;
@@ -13,6 +13,7 @@ import { AGENT_TOOL_NAMES, DANGEROUS_TOOL_NAMES, resolveToolAnnotations } from "
13
13
  const SERVER_INSTRUCTIONS = [
14
14
  "This server provides SSH/SFTP tools for configured remote hosts.",
15
15
  "For a new host that is not saved as a Profile, use ssh_connect for a temporary direct connection; host may be a hostname/IP with a separate username, or username@hostname.",
16
+ "For password-authenticated Windows SSH hosts, prefer ssh_saved_credential_status and ssh_run_saved_credential with a locally enrolled DPAPI alias; never request passwords as MCP arguments. Enroll locally using Set-SshMcpCredential.ps1 and a host-key SHA256 hex verified independently.",
16
17
  "A host and port identify the destination but do not by themselves authenticate the user; use the authentication mechanism required by the server.",
17
18
  "For InstaBox SSH tokens, the ibssh_… token is the SSH username itself; it needs no password or private key. Treat this username as a bearer secret; responses redact it and it should not be saved in a shared .env file.",
18
19
  "The current ssh2 persistent-session backend cannot negotiate InstaBox's OpenSSH host-certificate algorithm. ssh_probe_host_key can inspect the certificate without authentication; ssh_connect refuses this target before sending the token. For a one-shot command, use ssh_run_openssh_temporary only after a host-specific CA fingerprint has been independently verified and pinned in the local MCP process environment variable SSH_MCP_TRUSTED_HOST_CA_FINGERPRINTS. Tool arguments cannot create or override this trust anchor. Call ssh_trust_host_ca only when the CA key matches that local pin and the user wants permanent known_hosts trust; prefer usernameEnvVar to avoid passing a token in tool arguments. Persistent Shell/SFTP/tunnel support for this certificate backend remains future work.",
@@ -25,7 +26,7 @@ const SERVER_INSTRUCTIONS = [
25
26
  ].join(" ");
26
27
  const server = new McpServer({
27
28
  name: "enterprise-ssh-mcp-server",
28
- version: "0.3.1",
29
+ version: "0.3.4",
29
30
  }, {
30
31
  instructions: SERVER_INSTRUCTIONS,
31
32
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/app/tool-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/app/tool-context.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ export interface OpenSshCommandInput {
3
3
  host: string;
4
4
  username?: string;
5
5
  usernameEnvVar?: string;
6
+ /** One-shot InstaBox credential; the MCP client may log this tool argument. */
7
+ ephemeralToken?: string;
6
8
  port: number;
7
9
  command: string;
8
10
  identityFile?: string;
@@ -30,6 +30,15 @@ export function buildOpenSshArgs(input, host, username) {
30
30
  return args;
31
31
  }
32
32
  export function resolveOpenSshTarget(input, environment = process.env) {
33
+ if (input.ephemeralToken !== undefined) {
34
+ if (input.usernameEnvVar !== undefined || input.username !== undefined || input.host.includes("@")) {
35
+ throw new McpToolError("ssh_target_username_conflict", "Choose exactly one username or token source");
36
+ }
37
+ if (input.host.toLowerCase().trim() !== "ssh.instabox.sh" || !/^ibssh_[A-Za-z0-9_-]+$/.test(input.ephemeralToken)) {
38
+ throw new McpToolError("instabox_token_invalid", "One-shot InstaBox token or host is invalid");
39
+ }
40
+ return parseSshTarget({ host: input.host, username: input.ephemeralToken });
41
+ }
33
42
  if (input.usernameEnvVar === undefined) {
34
43
  return parseSshTarget({ host: input.host, username: input.username });
35
44
  }
@@ -73,8 +82,8 @@ export async function runOpenSshCommand(input) {
73
82
  throw new McpToolError("instabox_token_auth_conflict", "InstaBox SSH token authentication uses the username; do not attach a private-key file to this connection", { host: target.host, port: input.port });
74
83
  }
75
84
  if (target.host.toLowerCase() === "ssh.instabox.sh") {
76
- if (input.usernameEnvVar === undefined) {
77
- throw new McpToolError("instabox_token_env_required", "For InstaBox, read the SSH token from the local MCP process environment via usernameEnvVar; do not pass the bearer token in tool arguments");
85
+ if (input.usernameEnvVar === undefined && input.ephemeralToken === undefined) {
86
+ throw new McpToolError("instabox_token_env_required", "For InstaBox, use usernameEnvVar or an explicit one-shot ephemeralToken. MCP clients may log request arguments.");
78
87
  }
79
88
  if (!/^ibssh_/i.test(target.username)) {
80
89
  throw new McpToolError("instabox_token_invalid", "The configured InstaBox SSH token must use the expected ibssh_ token format");
@@ -86,6 +95,7 @@ export async function runOpenSshCommand(input) {
86
95
  let args;
87
96
  const needsIsolatedConfig = input.knownHostsPath !== undefined
88
97
  || input.usernameEnvVar !== undefined
98
+ || input.ephemeralToken !== undefined
89
99
  || isInstaboxSshTokenTarget(target);
90
100
  if (needsIsolatedConfig) {
91
101
  // Keep environment-provided usernames/tokens out of process arguments.
@@ -1 +1 @@
1
- {"version":3,"file":"openssh-command.js","sourceRoot":"","sources":["../src/openssh-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openssh-command.js","sourceRoot":"","sources":["../src/openssh-command.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export interface TemporaryOpenSshCommandInput {
3
3
  host: string;
4
4
  username?: string;
5
5
  usernameEnvVar?: string;
6
+ ephemeralToken?: string;
6
7
  port: number;
7
8
  command: string;
8
9
  identityFile?: string;
@@ -19,8 +19,8 @@ export async function runOpenSshCommandWithTemporaryHostCa(input) {
19
19
  const target = resolveOpenSshTarget(input);
20
20
  const host = target.host;
21
21
  if (host.toLowerCase() === "ssh.instabox.sh") {
22
- if (input.usernameEnvVar === undefined) {
23
- throw new McpToolError("instabox_token_env_required", "For InstaBox, read the SSH token from the local MCP process environment via usernameEnvVar; do not pass the bearer token in tool arguments");
22
+ if (input.usernameEnvVar === undefined && input.ephemeralToken === undefined) {
23
+ throw new McpToolError("instabox_token_env_required", "For InstaBox, use usernameEnvVar or an explicit one-shot ephemeralToken. MCP clients may log request arguments.");
24
24
  }
25
25
  if (!isInstaboxSshTokenTarget(target)) {
26
26
  throw new McpToolError("instabox_token_invalid", "The configured InstaBox SSH token must use the expected ibssh_ token format");
@@ -65,6 +65,7 @@ export async function runOpenSshCommandWithTemporaryHostCa(input) {
65
65
  knownHostsPath,
66
66
  ...(input.username === undefined ? {} : { username: input.username }),
67
67
  ...(input.usernameEnvVar === undefined ? {} : { usernameEnvVar: input.usernameEnvVar }),
68
+ ...(input.ephemeralToken === undefined ? {} : { ephemeralToken: input.ephemeralToken }),
68
69
  ...(input.identityFile === undefined ? {} : { identityFile: input.identityFile }),
69
70
  });
70
71
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"openssh-temporary.js","sourceRoot":"","sources":["../src/openssh-temporary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openssh-temporary.js","sourceRoot":"","sources":["../src/openssh-temporary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type ExecResult } from "./ssh-session.js";
2
+ export interface SavedCredentialRunOptions {
3
+ credentialId: string;
4
+ command: string;
5
+ timeoutMs: number;
6
+ maxOutputBytes: number;
7
+ connectionTimeoutMs: number;
8
+ }
9
+ export interface SavedCredentialRunResult {
10
+ credentialId: string;
11
+ host: string;
12
+ port: number;
13
+ username: string;
14
+ verifiedHostHash: string;
15
+ disconnected: true;
16
+ result: ExecResult;
17
+ }
18
+ /** No password is ever supplied in the MCP request, in argv or in an .env. */
19
+ export declare function runSavedCredentialCommand(input: SavedCredentialRunOptions): Promise<SavedCredentialRunResult>;
@@ -0,0 +1,44 @@
1
+ import { readCredentialMetadata, decryptCredential } from "./secure-credentials.js";
2
+ import { SshSession } from "./ssh-session.js";
3
+ import { McpToolError } from "./tool-result.js";
4
+ /** No password is ever supplied in the MCP request, in argv or in an .env. */
5
+ export async function runSavedCredentialCommand(input) {
6
+ if (input.command.trim().length === 0 || input.command.length > 16_384) {
7
+ throw new McpToolError("invalid_argument", "Command must be nonempty and at most 16384 characters");
8
+ }
9
+ const metadata = await readCredentialMetadata(input.credentialId);
10
+ let password = await decryptCredential(input.credentialId);
11
+ let session;
12
+ try {
13
+ session = await SshSession.connect({
14
+ host: metadata.host, port: metadata.port, username: metadata.username,
15
+ password, hostHash: "sha256", expectedHostHash: metadata.expectedHostHash,
16
+ agentForward: false, tryKeyboard: false, keyboardResponses: [],
17
+ keepaliveIntervalMs: 10_000, keepaliveCountMax: 3,
18
+ readyTimeoutMs: input.connectionTimeoutMs,
19
+ connectionTimeoutMs: input.connectionTimeoutMs,
20
+ strictVendor: true, debug: false,
21
+ });
22
+ const result = await session.exec({
23
+ command: input.command, timeoutMs: input.timeoutMs, maxOutputBytes: input.maxOutputBytes,
24
+ stdinEncoding: "utf8", outputEncoding: "utf8",
25
+ });
26
+ return {
27
+ credentialId: metadata.id, host: metadata.host, port: metadata.port,
28
+ username: metadata.username, verifiedHostHash: metadata.expectedHostHash,
29
+ disconnected: true, result,
30
+ };
31
+ }
32
+ catch (error) {
33
+ if (error instanceof Error && password.length > 0 && error.message.includes(password)) {
34
+ throw new McpToolError("ssh_saved_credential_failed", "SSH command failed; sensitive diagnostics were redacted");
35
+ }
36
+ throw error;
37
+ }
38
+ finally {
39
+ password = "";
40
+ if (session !== undefined)
41
+ await session.disconnect();
42
+ }
43
+ }
44
+ //# sourceMappingURL=saved-credential-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saved-credential-run.js","sourceRoot":"","sources":["../src/saved-credential-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAmB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAoBhD,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,KAAgC;IAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QACvE,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,uDAAuD,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAClE,IAAI,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3D,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YACrE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YACzE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;YAC9D,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;YACjD,cAAc,EAAE,KAAK,CAAC,mBAAmB;YACzC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;SACjC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;YACxF,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;SAC9C,CAAC,CAAC;QACH,OAAO;YACL,YAAY,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;YACxE,YAAY,EAAE,IAAI,EAAE,MAAM;SAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,YAAY,CAAC,6BAA6B,EAAE,yDAAyD,CAAC,CAAC;QACnH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,QAAQ,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,KAAK,SAAS;YAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;IACxD,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** Per-user Windows DPAPI store. IDs are not paths and never contain credentials. */
2
+ export declare function credentialPaths(id: string, home?: string): {
3
+ metadata: string;
4
+ encrypted: string;
5
+ };
6
+ export interface SavedCredentialMetadata {
7
+ version: 1;
8
+ id: string;
9
+ host: string;
10
+ port: number;
11
+ username: string;
12
+ expectedHostHash: string;
13
+ }
14
+ export declare function readCredentialMetadata(id: string, home?: string): Promise<SavedCredentialMetadata>;
15
+ export declare function decryptCredential(id: string, home?: string): Promise<string>;
@@ -0,0 +1,63 @@
1
+ import { execFile } from "node:child_process";
2
+ import { readFile, access } from "node:fs/promises";
3
+ import { homedir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+ import { McpToolError } from "./tool-result.js";
7
+ import { parseSshTarget } from "./ssh-target.js";
8
+ const CREDENTIAL_ID = /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$/;
9
+ const SHA256_HEX = /^[a-fA-F0-9]{64}$/;
10
+ /** Per-user Windows DPAPI store. IDs are not paths and never contain credentials. */
11
+ export function credentialPaths(id, home = homedir()) {
12
+ if (!CREDENTIAL_ID.test(id)) {
13
+ throw new McpToolError("ssh_credential_id_invalid", "Credential ID must be 1-64 ASCII letters, numbers, underscores or hyphens");
14
+ }
15
+ const directory = join(home, ".ssh-manager", "secure", "ssh-credentials");
16
+ return { metadata: join(directory, `${id}.json`), encrypted: join(directory, `${id}.dpapi`) };
17
+ }
18
+ export async function readCredentialMetadata(id, home) {
19
+ if (process.platform !== "win32") {
20
+ throw new McpToolError("ssh_credential_platform_unsupported", "The Windows DPAPI credential store requires Windows");
21
+ }
22
+ const paths = credentialPaths(id, home);
23
+ let record;
24
+ try {
25
+ record = JSON.parse(await readFile(paths.metadata, "utf8"));
26
+ await access(paths.encrypted);
27
+ }
28
+ catch {
29
+ throw new McpToolError("ssh_credential_not_found", "No local encrypted SSH credential with this ID. Enroll it locally using Set-SshMcpCredential.ps1");
30
+ }
31
+ if (record === null || typeof record !== "object" || Array.isArray(record)) {
32
+ throw new McpToolError("ssh_credential_invalid", "Stored SSH credential metadata is invalid");
33
+ }
34
+ const r = record;
35
+ if (r.version !== 1 || r.id !== id || typeof r.host !== "string" || typeof r.username !== "string"
36
+ || !Number.isInteger(r.port) || Number(r.port) < 1 || Number(r.port) > 65535
37
+ || typeof r.expectedHostHash !== "string" || !SHA256_HEX.test(r.expectedHostHash)) {
38
+ throw new McpToolError("ssh_credential_invalid", "Stored SSH credential metadata failed validation");
39
+ }
40
+ const target = parseSshTarget({ host: r.host, username: r.username });
41
+ if (target.host.toLowerCase() === "ssh.instabox.sh") {
42
+ throw new McpToolError("ssh_credential_unsupported_host", "Host-certificate endpoints must use the dedicated OpenSSH CA-verification workflow");
43
+ }
44
+ return {
45
+ version: 1, id, host: target.host, username: target.username,
46
+ port: Number(r.port), expectedHostHash: r.expectedHostHash.toLowerCase(),
47
+ };
48
+ }
49
+ export async function decryptCredential(id, home) {
50
+ const paths = credentialPaths(id, home);
51
+ const reader = fileURLToPath(new URL("../scripts/Get-SshMcpCredential.ps1", import.meta.url));
52
+ return await new Promise((resolve, reject) => {
53
+ execFile("powershell.exe", ["-NoLogo", "-NoProfile", "-NonInteractive", "-ExecutionPolicy", "Bypass", "-File", reader, "-CredentialPath", paths.encrypted], { timeout: 12_000, maxBuffer: 16 * 1024, windowsHide: true }, (error, stdout) => {
54
+ // Never return PowerShell errors/stdout containing credential data to the MCP client.
55
+ if (error || stdout.length < 1 || stdout.length > 4096) {
56
+ reject(new McpToolError("ssh_credential_unlock_failed", "Unable to unlock encrypted SSH credential for this Windows user"));
57
+ return;
58
+ }
59
+ resolve(stdout);
60
+ });
61
+ });
62
+ }
63
+ //# sourceMappingURL=secure-credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure-credentials.js","sourceRoot":"","sources":["../src/secure-credentials.ts"],"names":[],"mappings":"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"}
@@ -4,15 +4,44 @@ import { runOpenSshCommand } from "../openssh-command.js";
4
4
  import { runOpenSshCommandWithTemporaryHostCa } from "../openssh-temporary.js";
5
5
  import { trustOpenSshHostCa } from "../openssh-trust.js";
6
6
  import { McpToolError } from "../tool-result.js";
7
+ import { readCredentialMetadata } from "../secure-credentials.js";
8
+ import { runSavedCredentialCommand } from "../saved-credential-run.js";
7
9
  export function registerSessionTools(ctx) {
8
10
  const { z, toToolResult, runtimeConfig, sessions, sessionIdSchema, wireEncodingSchema, ptySchema, registerTool, compactExecPty, compactPty } = ctx;
11
+ registerTool("ssh_saved_credential_status", {
12
+ title: "Inspect local encrypted SSH credential alias",
13
+ description: "Check that a Windows DPAPI credential alias exists and inspect non-secret host metadata. Never returns or decrypts a password.",
14
+ inputSchema: { credentialId: z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$/) },
15
+ }, async (args) => toToolResult(async () => ({
16
+ ok: true, credential: await readCredentialMetadata(args.credentialId),
17
+ })));
18
+ registerTool("ssh_run_saved_credential", {
19
+ title: "Run one-off SSH command using local DPAPI credential",
20
+ description: "Windows only. Read an encrypted local credential by alias (password never enters MCP arguments); require the independently pinned SSH host key from enrollment, run one remote command and disconnect. To enroll locally, use scripts/Set-SshMcpCredential.ps1 with a hidden password prompt.",
21
+ inputSchema: {
22
+ credentialId: z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$/),
23
+ command: z.string().min(1).max(16_384),
24
+ timeoutMs: z.number().int().min(1_000).max(86_400_000).optional(),
25
+ connectionTimeoutMs: z.number().int().min(1_000).max(120_000).optional(),
26
+ maxOutputBytes: z.number().int().min(1).max(64 * 1024 * 1024).optional(),
27
+ },
28
+ }, async (args) => toToolResult(async () => ({
29
+ ok: true,
30
+ ...(await runSavedCredentialCommand({
31
+ credentialId: args.credentialId, command: args.command,
32
+ timeoutMs: args.timeoutMs ?? runtimeConfig.get().defaultExecTimeoutMs,
33
+ connectionTimeoutMs: args.connectionTimeoutMs ?? runtimeConfig.get().defaultConnectionTimeoutMs,
34
+ maxOutputBytes: args.maxOutputBytes ?? runtimeConfig.get().defaultMaxOutputBytes,
35
+ })),
36
+ })));
9
37
  registerTool("ssh_run_openssh_temporary", {
10
38
  title: "Run one-shot command with temporary host trust",
11
- description: "Run a one-shot OpenSSH command for an OpenSSH host-certificate endpoint using an isolated temporary known_hosts file that is deleted after the command. The live host CA fingerprint must match a locally configured pin in SSH_MCP_TRUSTED_HOST_CA_FINGERPRINTS; this tool cannot set or override that trust anchor. Does not modify the user's permanent known_hosts file or create a persistent session. For InstaBox, usernameEnvVar is required; inline bearer tokens are rejected.",
39
+ description: "One-shot native OpenSSH with isolated temporary host CA trust, requiring a locally pinned CA fingerprint. For InstaBox, use usernameEnvVar (no credential in arguments) or opt-in ephemeralToken for one-time use without setup. The latter may be retained in MCP client/tool request logs even though the server does not persist it. No persistent session or permanent known_hosts changes.",
12
40
  inputSchema: {
13
41
  host: z.string().min(1).describe("Hostname/IP; username@hostname is supported only when usernameEnvVar is omitted. For InstaBox, provide hostname only and use usernameEnvVar."),
14
42
  username: z.string().min(1).optional(),
15
43
  usernameEnvVar: z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).optional().describe("Read the SSH username/token from this local MCP process environment variable instead of passing it in tool arguments."),
44
+ ephemeralToken: z.string().regex(/^ibssh_[A-Za-z0-9_-]+$/).optional().describe("Explicit one-shot InstaBox credential. Mutually exclusive with username/usernameEnvVar. WARNING: MCP clients may log this sensitive argument."),
16
45
  port: z.number().int().min(1).max(65_535).optional(),
17
46
  command: z.string().min(1),
18
47
  identityFile: z.string().min(1).optional(),
@@ -29,6 +58,7 @@ export function registerSessionTools(ctx) {
29
58
  maxOutputBytes: args.maxOutputBytes ?? runtimeConfig.get().defaultMaxOutputBytes,
30
59
  ...(args.username === undefined ? {} : { username: args.username }),
31
60
  ...(args.usernameEnvVar === undefined ? {} : { usernameEnvVar: args.usernameEnvVar }),
61
+ ...(args.ephemeralToken === undefined ? {} : { ephemeralToken: args.ephemeralToken }),
32
62
  ...(args.identityFile === undefined ? {} : { identityFile: args.identityFile }),
33
63
  }),
34
64
  })));
@@ -46,11 +76,12 @@ export function registerSessionTools(ctx) {
46
76
  })));
47
77
  registerTool("ssh_run_openssh", {
48
78
  title: "Run one-shot command via OpenSSH",
49
- description: "Run one remote command with the system OpenSSH client, including endpoints that use OpenSSH host certificates. This does not create a persistent session and always requires the host/CA to be trusted in OpenSSH known_hosts; unknown hosts are rejected before authentication. For InstaBox, usernameEnvVar is required so the bearer token is never passed inline in tool arguments or process argv.",
79
+ description: "Run one remote command with native OpenSSH and strict known_hosts verification. For InstaBox use usernameEnvVar or opt-in ephemeralToken for one request without setup. The token is kept out of the native SSH process argv, but MCP clients may log a one-shot token argument.",
50
80
  inputSchema: {
51
81
  host: z.string().min(1).describe("Hostname/IP or username@hostname; no URL scheme or path."),
52
82
  username: z.string().min(1).optional(),
53
83
  usernameEnvVar: z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/).optional().describe("Read the SSH username/token from this local MCP process environment variable instead of passing it in tool arguments."),
84
+ ephemeralToken: z.string().regex(/^ibssh_[A-Za-z0-9_-]+$/).optional().describe("Explicit one-shot InstaBox credential. Mutually exclusive with username/usernameEnvVar. WARNING: MCP clients may log this sensitive argument."),
54
85
  port: z.number().int().min(1).max(65_535).optional(),
55
86
  command: z.string().min(1),
56
87
  identityFile: z.string().min(1).optional(),
@@ -68,6 +99,7 @@ export function registerSessionTools(ctx) {
68
99
  maxOutputBytes: args.maxOutputBytes ?? runtimeConfig.get().defaultMaxOutputBytes,
69
100
  ...(args.username === undefined ? {} : { username: args.username }),
70
101
  ...(args.usernameEnvVar === undefined ? {} : { usernameEnvVar: args.usernameEnvVar }),
102
+ ...(args.ephemeralToken === undefined ? {} : { ephemeralToken: args.ephemeralToken }),
71
103
  ...(args.identityFile === undefined ? {} : { identityFile: args.identityFile }),
72
104
  ...(args.knownHostsPath === undefined ? {} : { knownHostsPath: args.knownHostsPath }),
73
105
  }),
@@ -182,7 +214,7 @@ export function registerSessionTools(ctx) {
182
214
  inputSchema: {
183
215
  sessionId: sessionIdSchema,
184
216
  command: z.string().min(1),
185
- env: z.record(z.string()).optional(),
217
+ env: z.record(z.string(), z.string()).optional(),
186
218
  stdin: z.string().optional(),
187
219
  stdinEncoding: wireEncodingSchema,
188
220
  outputEncoding: wireEncodingSchema,
@@ -217,7 +249,7 @@ export function registerSessionTools(ctx) {
217
249
  description: "Open a persistent interactive shell channel with an optional pseudo-terminal.",
218
250
  inputSchema: {
219
251
  sessionId: sessionIdSchema,
220
- env: z.record(z.string()).optional(),
252
+ env: z.record(z.string(), z.string()).optional(),
221
253
  allocatePty: z.boolean().optional(),
222
254
  pty: ptySchema.optional(),
223
255
  ringBufferBytes: z.number().int().min(1024).max(64 * 1024 * 1024).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"register-session-tools.js","sourceRoot":"","sources":["../../src/tools/register-session-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-session-tools.js","sourceRoot":"","sources":["../../src/tools/register-session-tools.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
2
2
  export type ToolRisk = "read-only" | "stateful" | "write" | "destructive";
3
- export declare const TOOL_NAMES: readonly ["ssh_get_config", "ssh_reload_config", "ssh_list_profiles", "ssh_reload_profiles", "ssh_connect_profile", "ssh_run_profile", "ssh_check_profile", "ssh_project_open", "ssh_project_tree", "ssh_project_search", "ssh_project_stat", "ssh_file_read", "ssh_file_patch", "ssh_project_validate_patch", "ssh_project_apply_patch", "ssh_file_write", "ssh_file_delete", "ssh_file_move", "ssh_project_diff", "ssh_project_run_checks", "ssh_edit_history", "ssh_edit_rollback", "ssh_run_openssh_temporary", "ssh_trust_host_ca", "ssh_run_openssh", "ssh_probe_host_key", "ssh_connect", "ssh_list_sessions", "ssh_disconnect", "ssh_disconnect_all", "ssh_exec", "ssh_rekey", "ssh_shell_open", "ssh_shell_list", "ssh_shell_write", "ssh_shell_read", "ssh_shell_resize", "ssh_shell_close", "sftp_list", "sftp_stat", "sftp_read_file", "sftp_write_file", "sftp_mkdir", "sftp_rm", "sftp_rename", "sftp_chmod", "sftp_chown", "sftp_touch", "sftp_symlink", "sftp_readlink", "sftp_realpath", "sftp_upload_start", "sftp_upload_profile", "sftp_download_start", "sftp_download_profile", "sftp_transfer_status", "sftp_transfer_list", "sftp_transfer_cancel", "ssh_tunnel_local_start", "ssh_tunnel_remote_start", "ssh_tunnel_list", "ssh_tunnel_stop"];
3
+ export declare const TOOL_NAMES: readonly ["ssh_get_config", "ssh_reload_config", "ssh_list_profiles", "ssh_reload_profiles", "ssh_connect_profile", "ssh_run_profile", "ssh_check_profile", "ssh_project_open", "ssh_project_tree", "ssh_project_search", "ssh_project_stat", "ssh_file_read", "ssh_file_patch", "ssh_project_validate_patch", "ssh_project_apply_patch", "ssh_file_write", "ssh_file_delete", "ssh_file_move", "ssh_project_diff", "ssh_project_run_checks", "ssh_edit_history", "ssh_edit_rollback", "ssh_run_openssh_temporary", "ssh_trust_host_ca", "ssh_run_openssh", "ssh_probe_host_key", "ssh_saved_credential_status", "ssh_run_saved_credential", "ssh_connect", "ssh_list_sessions", "ssh_disconnect", "ssh_disconnect_all", "ssh_exec", "ssh_rekey", "ssh_shell_open", "ssh_shell_list", "ssh_shell_write", "ssh_shell_read", "ssh_shell_resize", "ssh_shell_close", "sftp_list", "sftp_stat", "sftp_read_file", "sftp_write_file", "sftp_mkdir", "sftp_rm", "sftp_rename", "sftp_chmod", "sftp_chown", "sftp_touch", "sftp_symlink", "sftp_readlink", "sftp_realpath", "sftp_upload_start", "sftp_upload_profile", "sftp_download_start", "sftp_download_profile", "sftp_transfer_status", "sftp_transfer_list", "sftp_transfer_cancel", "ssh_tunnel_local_start", "ssh_tunnel_remote_start", "ssh_tunnel_list", "ssh_tunnel_stop"];
4
4
  export type ToolName = (typeof TOOL_NAMES)[number];
5
5
  export declare const AGENT_TOOL_NAMES: Set<string>;
6
6
  /**
@@ -25,6 +25,8 @@ export const TOOL_NAMES = [
25
25
  "ssh_trust_host_ca",
26
26
  "ssh_run_openssh",
27
27
  "ssh_probe_host_key",
28
+ "ssh_saved_credential_status",
29
+ "ssh_run_saved_credential",
28
30
  "ssh_connect",
29
31
  "ssh_list_sessions",
30
32
  "ssh_disconnect",
@@ -87,6 +89,8 @@ export const AGENT_TOOL_NAMES = new Set([
87
89
  "ssh_trust_host_ca",
88
90
  "ssh_run_openssh",
89
91
  "ssh_probe_host_key",
92
+ "ssh_saved_credential_status",
93
+ "ssh_run_saved_credential",
90
94
  "ssh_disconnect",
91
95
  "ssh_exec",
92
96
  "ssh_shell_open",
@@ -128,6 +132,7 @@ export const DANGEROUS_TOOL_NAMES = new Set([
128
132
  ]);
129
133
  export const LOCAL_ONLY_TOOL_NAMES = new Set([
130
134
  "ssh_get_config",
135
+ "ssh_saved_credential_status",
131
136
  "ssh_reload_config",
132
137
  "ssh_list_profiles",
133
138
  "ssh_reload_profiles",
@@ -169,6 +174,8 @@ export const TOOL_RISK = {
169
174
  ssh_trust_host_ca: "stateful",
170
175
  ssh_run_openssh: "destructive",
171
176
  ssh_probe_host_key: "read-only",
177
+ ssh_saved_credential_status: "read-only",
178
+ ssh_run_saved_credential: "destructive",
172
179
  ssh_connect: "stateful",
173
180
  ssh_list_sessions: "read-only",
174
181
  ssh_disconnect: "stateful",
@@ -1 +1 @@
1
- {"version":3,"file":"tool-metadata.js","sourceRoot":"","sources":["../../src/tools/tool-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-metadata.js","sourceRoot":"","sources":["../../src/tools/tool-metadata.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,4BAA4B;IAC5B,yBAAyB;IACzB,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,wBAAwB;IACxB,kBAAkB;IAClB,mBAAmB;IACnB,2BAA2B;IAC3B,mBAAmB;IACnB,iBAAiB;IACjB,oBAAoB;IACpB,6BAA6B;IAC7B,0BAA0B;IAC1B,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,oBAAoB;IACpB,UAAU;IACV,WAAW;IACX,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;IACZ,SAAS;IACT,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;IACtB,wBAAwB;IACxB,yBAAyB;IACzB,iBAAiB;IACjB,iBAAiB;CACT,CAAC;AAIX,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IAC9C,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,wBAAwB;IACxB,4BAA4B;IAC5B,yBAAyB;IACzB,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,mBAAmB;IACnB,2BAA2B;IAC3B,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,oBAAoB;IACpB,6BAA6B;IAC7B,0BAA0B;IAC1B,gBAAgB;IAChB,UAAU;IACV,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,WAAW;IACX,WAAW;IACX,gBAAgB;IAChB,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,oBAAoB;IACpB,sBAAsB;CACvB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS;IAClD,oBAAoB;IACpB,wBAAwB;IACxB,yBAAyB;IACzB,iBAAiB;IACjB,SAAS;IACT,iBAAiB;IACjB,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,mBAAmB;IACnB,qBAAqB;IACrB,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS;IACnD,gBAAgB;IAChB,6BAA6B;IAC7B,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,sBAAsB;IACtB,oBAAoB;IACpB,iBAAiB;CAClB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAA+B;IACnD,cAAc,EAAE,WAAW;IAC3B,iBAAiB,EAAE,UAAU;IAC7B,iBAAiB,EAAE,WAAW;IAC9B,mBAAmB,EAAE,UAAU;IAC/B,mBAAmB,EAAE,UAAU;IAC/B,eAAe,EAAE,aAAa;IAC9B,iBAAiB,EAAE,WAAW;IAC9B,gBAAgB,EAAE,WAAW;IAC7B,gBAAgB,EAAE,WAAW;IAC7B,kBAAkB,EAAE,WAAW;IAC/B,gBAAgB,EAAE,WAAW;IAC7B,aAAa,EAAE,WAAW;IAC1B,cAAc,EAAE,aAAa;IAC7B,0BAA0B,EAAE,WAAW;IACvC,uBAAuB,EAAE,aAAa;IACtC,cAAc,EAAE,aAAa;IAC7B,eAAe,EAAE,aAAa;IAC9B,aAAa,EAAE,aAAa;IAC5B,gBAAgB,EAAE,WAAW;IAC7B,sBAAsB,EAAE,aAAa;IACrC,gBAAgB,EAAE,WAAW;IAC7B,iBAAiB,EAAE,aAAa;IAChC,yBAAyB,EAAE,aAAa;IACxC,iBAAiB,EAAE,UAAU;IAC7B,eAAe,EAAE,aAAa;IAC9B,kBAAkB,EAAE,WAAW;IAC/B,2BAA2B,EAAE,WAAW;IACxC,wBAAwB,EAAE,aAAa;IACvC,WAAW,EAAE,UAAU;IACvB,iBAAiB,EAAE,WAAW;IAC9B,cAAc,EAAE,UAAU;IAC1B,kBAAkB,EAAE,UAAU;IAC9B,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,UAAU;IACrB,cAAc,EAAE,UAAU;IAC1B,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,aAAa;IAC9B,cAAc,EAAE,WAAW;IAC3B,gBAAgB,EAAE,UAAU;IAC5B,eAAe,EAAE,UAAU;IAC3B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,aAAa;IAC9B,UAAU,EAAE,OAAO;IACnB,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE,WAAW;IAC1B,aAAa,EAAE,WAAW;IAC1B,iBAAiB,EAAE,aAAa;IAChC,mBAAmB,EAAE,aAAa;IAClC,mBAAmB,EAAE,aAAa;IAClC,qBAAqB,EAAE,aAAa;IACpC,oBAAoB,EAAE,WAAW;IACjC,kBAAkB,EAAE,WAAW;IAC/B,oBAAoB,EAAE,UAAU;IAChC,sBAAsB,EAAE,UAAU;IAClC,uBAAuB,EAAE,UAAU;IACnC,eAAe,EAAE,WAAW;IAC5B,eAAe,EAAE,UAAU;CAC5B,CAAC;AAEF,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,SAAsC;IAEtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAG,SAAS,CAAC,IAAgB,CAAC,CAAC;IACzC,OAAO;QACL,YAAY,EAAE,IAAI,KAAK,WAAW;QAClC,eAAe,EAAE,IAAI,KAAK,aAAa;QACvC,cAAc,EAAE,IAAI,KAAK,WAAW;QACpC,aAAa,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/C,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,62 @@
1
+ # Windows DPAPI SSH credentials (one-shot)
2
+
3
+ This opt-in workflow keeps the SSH password out of MCP tool calls, CLI
4
+ arguments, application configuration and Git. Credentials are encrypted using
5
+ Windows DPAPI under the current Windows user account and protected by a
6
+ restricted per-user NTFS directory.
7
+
8
+ ## 1. Verify the SSH server identity before enrolling
9
+
10
+ Use a trusted remote console or administrator-approved channel to obtain the
11
+ server's ED25519 public host key fingerprint. `ssh_probe_host_key` can
12
+ observe a fingerprint, but a network observation alone is **not** a trusted
13
+ fingerprint. Use the 64-character hex form of the *independently verified*
14
+ SHA-256 host-key digest. Do not turn off host verification.
15
+
16
+ ## 2. Enroll once using a local interactive PowerShell terminal
17
+
18
+ ```powershell
19
+ & "D:\studyProject\skills\enterprise_ssh\scripts\Set-SshMcpCredential.ps1" `
20
+ -CredentialId "wesky-p7" `
21
+ -HostName "100.66.166.53" `
22
+ -Port 22 `
23
+ -Username "root" `
24
+ -ExpectedHostHash "<independently-verified-64-character-sha256-hex>"
25
+ ```
26
+
27
+ PowerShell will prompt for the password securely (characters are not echoed).
28
+ Do not paste passwords into ChatGPT, tool arguments, command-line switches or
29
+ saved PowerShell history. The encrypted credential is user-bound (Windows
30
+ DPAPI) and is not portable to a different user/machine without reenrollment.
31
+ Do not commit `%USERPROFILE%\.ssh-manager\secure\ssh-credentials` to Git.
32
+
33
+ ## 3. Use the MCP (no password fields)
34
+
35
+ ```json
36
+ { "name": "ssh_saved_credential_status", "arguments": { "credentialId": "wesky-p7" } }
37
+ { "name": "ssh_run_saved_credential", "arguments": { "credentialId": "wesky-p7", "command": "uname -a" } }
38
+ ```
39
+
40
+ The connection uses ssh2 with strict host-key pinning and the stored host,
41
+ port and username. The password is decrypted in the MCP process via a
42
+ separate child process pipe, not via argv or environment. The remote session
43
+ is ephemeral and is always disconnected after the command, including errors.
44
+ The MCP response contains no password or decrypted credential.
45
+
46
+ For removal, delete the `wesky-p7.dpapi` and `wesky-p7.json` files under
47
+ `%USERPROFILE%\.ssh-manager\secure\ssh-credentials`.
48
+
49
+ ## Security boundaries
50
+
51
+ - Credential aliases must be alphanumeric with optional underscores/hyphens.
52
+ - Credentials are host/port/user-bound, and a host-key hash is mandatory.
53
+ - Enrollment must take place in a real local interactive terminal (not an
54
+ MCP argument). The current MCP does not include a password-write tool.
55
+ - This feature is Windows-only. Existing SSH profile and InstaBox CA flows
56
+ remain unchanged.
57
+ - A program running under the *same Windows user account* can request DPAPI
58
+ decryption. Treat access to the logged-in Windows account as highly trusted,
59
+ and use least privilege for MCP clients that can run remote commands.
60
+ - Password strings exist briefly in local process memory and the PowerShell
61
+ pipe during decryption; DPAPI is at-rest protection, not a defense against
62
+ a compromised logged-in user session.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enterprise-ssh-mcp-server",
3
- "version": "0.3.2",
3
+ "version": "0.3.4",
4
4
  "description": "Enterprise SSH/SFTP MCP server with persistent sessions, interactive shells, transfer jobs, and port forwarding.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -22,6 +22,9 @@
22
22
  },
23
23
  "files": [
24
24
  "dist",
25
+ "scripts/Get-SshMcpCredential.ps1",
26
+ "scripts/Set-SshMcpCredential.ps1",
27
+ "docs/windows-dpapi-credentials.md",
25
28
  "README.md",
26
29
  "CHANGELOG.md"
27
30
  ],
@@ -36,9 +39,9 @@
36
39
  "dev:watch": "tsx watch src/index.ts"
37
40
  },
38
41
  "dependencies": {
39
- "@modelcontextprotocol/sdk": "^1.29.0",
42
+ "@modelcontextprotocol/sdk": "^1.32.2",
40
43
  "ssh2": "^1.17.0",
41
- "zod": "^3.25.76"
44
+ "zod": "^4.6.7"
42
45
  },
43
46
  "devDependencies": {
44
47
  "@types/node": "^24.0.15",
@@ -0,0 +1,27 @@
1
+ # Invoked internally by the MCP process. This script never accepts a password argument.
2
+ param(
3
+ [Parameter(Mandatory = $true)][string]$CredentialPath
4
+ )
5
+ $ErrorActionPreference = 'Stop'
6
+ $secure = $null
7
+ $bstr = [IntPtr]::Zero
8
+ $plain = $null
9
+ try {
10
+ $secure = (Get-Content -LiteralPath $CredentialPath -Raw -ErrorAction Stop).Trim() |
11
+ ConvertTo-SecureString -ErrorAction Stop
12
+ $bstr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
13
+ $plain = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($bstr)
14
+ # Write UTF-8 to the private child-process pipe without a trailing newline.
15
+ $bytes = [Text.Encoding]::UTF8.GetBytes($plain)
16
+ try {
17
+ [Console]::OpenStandardOutput().Write($bytes, 0, $bytes.Length)
18
+ } finally {
19
+ [Array]::Clear($bytes, 0, $bytes.Length)
20
+ }
21
+ } finally {
22
+ $plain = $null
23
+ if ($bstr -ne [IntPtr]::Zero) {
24
+ [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($bstr)
25
+ }
26
+ if ($null -ne $secure) { $secure.Dispose() }
27
+ }
@@ -0,0 +1,53 @@
1
+ # Interactive Windows-only enrollment. Password never appears in process argv,
2
+ # command history, environment variables, source files or MCP tool arguments.
3
+ param(
4
+ [Parameter(Mandatory = $true)][string]$CredentialId,
5
+ [Parameter(Mandatory = $true)][string]$HostName,
6
+ [int]$Port = 22,
7
+ [Parameter(Mandatory = $true)][string]$Username,
8
+ [Parameter(Mandatory = $true)][string]$ExpectedHostHash
9
+ )
10
+ $ErrorActionPreference = 'Stop'
11
+ if ($CredentialId -cnotmatch '^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$') { throw 'Invalid credential ID' }
12
+ if ($HostName -notmatch '^[a-zA-Z0-9._:-]+$' -or $HostName.StartsWith('-')) { throw 'Invalid hostname' }
13
+ if ($Username -notmatch '^[^\s@]+$') { throw 'Invalid username' }
14
+ if ($Port -lt 1 -or $Port -gt 65535) { throw 'Invalid port' }
15
+ if ($ExpectedHostHash -notmatch '^[a-fA-F0-9]{64}$') { throw 'ExpectedHostHash must be independently verified 64-character SHA256 hex' }
16
+ if ($HostName -ieq 'ssh.instabox.sh') { throw 'InstaBox requires a dedicated OpenSSH host-certificate trust path' }
17
+
18
+ $dir = Join-Path $env:USERPROFILE '.ssh-manager\secure\ssh-credentials'
19
+ $metadataPath = Join-Path $dir ($CredentialId + '.json')
20
+ $secretPath = Join-Path $dir ($CredentialId + '.dpapi')
21
+ New-Item -Path $dir -ItemType Directory -Force | Out-Null
22
+ # Limit NTFS access to the current account. DPAPI separately protects decryption.
23
+ $me = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value
24
+ & icacls.exe $dir /inheritance:r /grant:r ('*' + $me + ':(OI)(CI)F') | Out-Null
25
+ if ($LASTEXITCODE -ne 0) { throw 'Could not restrict vault directory ACL' }
26
+ Write-Host 'Enter SSH password (input hidden; leave blank to cancel):'
27
+ $secret = Read-Host -AsSecureString
28
+ if ($secret.Length -eq 0) { $secret.Dispose(); throw 'Empty password was not saved' }
29
+ try {
30
+ $encrypted = ConvertFrom-SecureString -SecureString $secret
31
+ $metadata = @{
32
+ version = 1
33
+ id = $CredentialId
34
+ host = $HostName
35
+ port = $Port
36
+ username = $Username
37
+ expectedHostHash = $ExpectedHostHash.ToLowerInvariant()
38
+ } | ConvertTo-Json -Compress
39
+ # Write temp files and rename after success; no plaintext is written to disk.
40
+ $secretTemp = $secretPath + '.tmp'
41
+ $metadataTemp = $metadataPath + '.tmp'
42
+ try {
43
+ [IO.File]::WriteAllText($secretTemp, $encrypted, [Text.Encoding]::ASCII)
44
+ [IO.File]::WriteAllText($metadataTemp, $metadata, [Text.Encoding]::UTF8)
45
+ Move-Item -LiteralPath $secretTemp -Destination $secretPath -Force
46
+ Move-Item -LiteralPath $metadataTemp -Destination $metadataPath -Force
47
+ } finally {
48
+ Remove-Item -LiteralPath $secretTemp, $metadataTemp -Force -ErrorAction SilentlyContinue
49
+ }
50
+ Write-Host ('Encrypted SSH credential enrolled as alias: ' + $CredentialId)
51
+ } finally {
52
+ $secret.Dispose()
53
+ }