@judaharagao/opencode-ssh 1.0.0 → 1.1.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/README.md +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/ssh/config.d.ts +45 -0
- package/dist/ssh/config.d.ts.map +1 -0
- package/dist/ssh/config.js +137 -0
- package/dist/ssh/config.js.map +1 -0
- package/dist/ssh/connection.d.ts +2 -1
- package/dist/ssh/connection.d.ts.map +1 -1
- package/dist/ssh/connection.js +3 -0
- package/dist/ssh/connection.js.map +1 -1
- package/dist/tools.d.ts +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +107 -44
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,6 +48,27 @@ Or with configuration:
|
|
|
48
48
|
| `audit_enabled` | boolean | `true` | Enable audit logging |
|
|
49
49
|
| `blocklist_extra` | string[] | `[]` | Additional regex patterns to block |
|
|
50
50
|
| `allowlist` | string[] | `[]` | Additional allowed patterns (restricted mode) |
|
|
51
|
+
| `ssh_config_path` | string | `~/.ssh/config` | Path to the SSH config file used to resolve host aliases, defaults, and auto-connect targets |
|
|
52
|
+
| `auto_connect` | boolean | `false` | Connect automatically at startup to every `Host` entry in the ssh config that has a `HostName` |
|
|
53
|
+
|
|
54
|
+
## SSH Config Integration
|
|
55
|
+
|
|
56
|
+
The plugin can reuse your existing `~/.ssh/config` (or a custom path via `ssh_config_path`):
|
|
57
|
+
|
|
58
|
+
- **Host resolution** — `ssh.connect(host="myalias")` resolves the alias to its `HostName`, and automatically applies the `User`, `Port` and `IdentityFile` from the config. `username`, `port` and `auth_method`/`key_path` become optional when configured.
|
|
59
|
+
- **Auto-connect** — with `"auto_connect": true`, the plugin connects at startup to every `Host` entry that has a `HostName`, using the configured key (or `~/.ssh/id_rsa`). Unreachable hosts are skipped without blocking startup.
|
|
60
|
+
|
|
61
|
+
Example ssh config:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Host prod-web
|
|
65
|
+
HostName 10.0.0.10
|
|
66
|
+
User deploy
|
|
67
|
+
Port 2222
|
|
68
|
+
IdentityFile ~/.ssh/prod_key
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
With `ssh.connect(host="prod-web")` the plugin connects to `deploy@10.0.0.10:2222` using `~/.ssh/prod_key`.
|
|
51
72
|
|
|
52
73
|
## Security Modes
|
|
53
74
|
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;;;;;AA2BjD,wBAGC"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ const SshPlugin = async (_ctx, options) => {
|
|
|
5
5
|
// ── Resolve configuration ──
|
|
6
6
|
const config = resolveConfig(options);
|
|
7
7
|
// ── Create tools and hooks with resolved config ──
|
|
8
|
-
const tools = createSshTools(config.mode, config.max_sessions, config.default_timeout, config.blocklist_extra);
|
|
8
|
+
const tools = createSshTools(config.mode, config.max_sessions, config.default_timeout, config.blocklist_extra, config.ssh_config_path, config.auto_connect);
|
|
9
9
|
const hooks = createSshHooks(config.mode, config.blocklist_extra);
|
|
10
10
|
return {
|
|
11
11
|
tool: tools,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,SAAS,GAAW,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAChD,8BAA8B;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAkC,CAAC,CAAA;IAEhE,oDAAoD;IACpD,MAAM,KAAK,GAAG,cAAc,CAC1B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,SAAS,GAAW,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAChD,8BAA8B;IAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,OAAkC,CAAC,CAAA;IAEhE,oDAAoD;IACpD,MAAM,KAAK,GAAG,cAAc,CAC1B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,YAAY,CACpB,CAAA;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;IAEjE,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG,KAAK;KACT,CAAA;AACH,CAAC,CAAA;AAED,eAAe;IACb,EAAE,EAAE,cAAc;IAClB,MAAM,EAAE,SAAS;CAClB,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export interface SshConfigEntry {
|
|
2
|
+
/** Host patterns from the "Host" line (aliases / globs). */
|
|
3
|
+
patterns: string[];
|
|
4
|
+
/** Real hostname to connect to (HostName). */
|
|
5
|
+
hostName?: string;
|
|
6
|
+
/** User (User). */
|
|
7
|
+
user?: string;
|
|
8
|
+
/** Port (Port). */
|
|
9
|
+
port?: number;
|
|
10
|
+
/** Identity file (IdentityFile). */
|
|
11
|
+
identityFile?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface LoadedSshConfig {
|
|
14
|
+
entries: SshConfigEntry[];
|
|
15
|
+
path: string;
|
|
16
|
+
}
|
|
17
|
+
/** Expand a leading `~` to the current user's home directory. */
|
|
18
|
+
export declare function expandHomePath(p: string): string;
|
|
19
|
+
/** Resolve the ssh config file path, using the override or ~/.ssh/config. */
|
|
20
|
+
export declare function resolveSshConfigPath(configuredPath?: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Parse the content of an OpenSSH config file.
|
|
23
|
+
* Handles `Host` blocks and `Match` blocks, and captures
|
|
24
|
+
* HostName / User / Port / IdentityFile directives.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseSshConfig(content: string): SshConfigEntry[];
|
|
27
|
+
/**
|
|
28
|
+
* Find the first ssh config entry matching a host name.
|
|
29
|
+
* Prefers exact aliases, then falls back to `*`/`?` glob patterns.
|
|
30
|
+
*/
|
|
31
|
+
export declare function findHostConfig(entries: SshConfigEntry[], host: string): SshConfigEntry | undefined;
|
|
32
|
+
/** Load and parse the ssh config file. Empty entry list if it does not exist. */
|
|
33
|
+
export declare function loadSshConfig(configuredPath?: string): LoadedSshConfig;
|
|
34
|
+
/**
|
|
35
|
+
* Concrete machines suitable for auto-connecting: `Host` entries that
|
|
36
|
+
* resolve to a real `HostName`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getAutoConnectHosts(configuredPath?: string): Array<{
|
|
39
|
+
alias: string;
|
|
40
|
+
hostName: string;
|
|
41
|
+
user?: string;
|
|
42
|
+
port?: number;
|
|
43
|
+
identityFile?: string;
|
|
44
|
+
}>;
|
|
45
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/ssh/config.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAoDhE;AAaD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAelG;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,CAItE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,CAAC,EAAE,MAAM,GACtB,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBjG"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSH config (~/.ssh/config) parser.
|
|
3
|
+
* Reads alias, HostName, User, Port and IdentityFile so ssh.connect
|
|
4
|
+
* can reuse your normal SSH configuration and auto_connect knows what to hook.
|
|
5
|
+
*/
|
|
6
|
+
import { readFileSync, existsSync } from "fs";
|
|
7
|
+
import { resolve as pathResolve } from "path";
|
|
8
|
+
/** Expand a leading `~` to the current user's home directory. */
|
|
9
|
+
export function expandHomePath(p) {
|
|
10
|
+
if (p.startsWith("~/")) {
|
|
11
|
+
return pathResolve(process.env.HOME || "", p.slice(2));
|
|
12
|
+
}
|
|
13
|
+
return p;
|
|
14
|
+
}
|
|
15
|
+
/** Resolve the ssh config file path, using the override or ~/.ssh/config. */
|
|
16
|
+
export function resolveSshConfigPath(configuredPath) {
|
|
17
|
+
if (configuredPath && configuredPath.trim()) {
|
|
18
|
+
const p = configuredPath.trim();
|
|
19
|
+
return p.startsWith("~/") ? expandHomePath(p) : pathResolve(p);
|
|
20
|
+
}
|
|
21
|
+
return pathResolve(process.env.HOME || "", ".ssh", "config");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Parse the content of an OpenSSH config file.
|
|
25
|
+
* Handles `Host` blocks and `Match` blocks, and captures
|
|
26
|
+
* HostName / User / Port / IdentityFile directives.
|
|
27
|
+
*/
|
|
28
|
+
export function parseSshConfig(content) {
|
|
29
|
+
const entries = [];
|
|
30
|
+
let current = null;
|
|
31
|
+
for (const rawLine of content.split("\n")) {
|
|
32
|
+
const line = rawLine.trim();
|
|
33
|
+
if (!line || line.startsWith("#"))
|
|
34
|
+
continue;
|
|
35
|
+
const match = line.match(/^(\S+)\s+(.+)$/);
|
|
36
|
+
if (!match)
|
|
37
|
+
continue;
|
|
38
|
+
const key = match[1].toLowerCase();
|
|
39
|
+
const value = match[2].trim();
|
|
40
|
+
if (key === "host") {
|
|
41
|
+
const tokens = value.match(/"[^"]*"|\S+/g) || [];
|
|
42
|
+
current = {
|
|
43
|
+
patterns: tokens.map((t) => t.startsWith('"') && t.endsWith('"') ? t.slice(1, -1) : t),
|
|
44
|
+
};
|
|
45
|
+
entries.push(current);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (key === "match") {
|
|
49
|
+
current = { patterns: [] };
|
|
50
|
+
entries.push(current);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (!current)
|
|
54
|
+
continue;
|
|
55
|
+
switch (key) {
|
|
56
|
+
case "hostname":
|
|
57
|
+
current.hostName = value;
|
|
58
|
+
break;
|
|
59
|
+
case "user":
|
|
60
|
+
current.user = value;
|
|
61
|
+
break;
|
|
62
|
+
case "port": {
|
|
63
|
+
const num = Number.parseInt(value, 10);
|
|
64
|
+
if (!Number.isNaN(num))
|
|
65
|
+
current.port = num;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case "identityfile":
|
|
69
|
+
current.identityFile = value;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return entries;
|
|
74
|
+
}
|
|
75
|
+
/** Turn an OpenSSH Host pattern (may contain `*` / `?`) into a RegExp. */
|
|
76
|
+
function hostPatternToRegex(pattern) {
|
|
77
|
+
let out = "";
|
|
78
|
+
for (const ch of pattern) {
|
|
79
|
+
if (ch === "*")
|
|
80
|
+
out += ".*";
|
|
81
|
+
else if (ch === "?")
|
|
82
|
+
out += ".";
|
|
83
|
+
else
|
|
84
|
+
out += ch.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
85
|
+
}
|
|
86
|
+
return new RegExp(`^${out}$`, "i");
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Find the first ssh config entry matching a host name.
|
|
90
|
+
* Prefers exact aliases, then falls back to `*`/`?` glob patterns.
|
|
91
|
+
*/
|
|
92
|
+
export function findHostConfig(entries, host) {
|
|
93
|
+
const normalized = host.toLowerCase();
|
|
94
|
+
for (const entry of entries) {
|
|
95
|
+
for (const pattern of entry.patterns) {
|
|
96
|
+
if (pattern.toLowerCase() === normalized)
|
|
97
|
+
return entry;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
for (const entry of entries) {
|
|
101
|
+
for (const pattern of entry.patterns) {
|
|
102
|
+
if (pattern.includes("*") || pattern.includes("?")) {
|
|
103
|
+
if (hostPatternToRegex(pattern).test(host))
|
|
104
|
+
return entry;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
/** Load and parse the ssh config file. Empty entry list if it does not exist. */
|
|
111
|
+
export function loadSshConfig(configuredPath) {
|
|
112
|
+
const path = resolveSshConfigPath(configuredPath);
|
|
113
|
+
if (!existsSync(path))
|
|
114
|
+
return { entries: [], path };
|
|
115
|
+
return { entries: parseSshConfig(readFileSync(path, "utf-8")), path };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Concrete machines suitable for auto-connecting: `Host` entries that
|
|
119
|
+
* resolve to a real `HostName`.
|
|
120
|
+
*/
|
|
121
|
+
export function getAutoConnectHosts(configuredPath) {
|
|
122
|
+
const { entries } = loadSshConfig(configuredPath);
|
|
123
|
+
const hosts = [];
|
|
124
|
+
for (const entry of entries) {
|
|
125
|
+
if (entry.patterns.length > 0 && entry.hostName) {
|
|
126
|
+
hosts.push({
|
|
127
|
+
alias: entry.patterns[0],
|
|
128
|
+
hostName: entry.hostName,
|
|
129
|
+
user: entry.user,
|
|
130
|
+
port: entry.port,
|
|
131
|
+
identityFile: entry.identityFile,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return hosts;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/ssh/config.ts"],"names":[],"mappings":"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"}
|
package/dist/ssh/connection.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/ssh/connection.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/ssh/connection.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAA;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,mBAAmB,CAAA;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAC,CAAM;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAM;IAC5B,OAAO,CAAC,kBAAkB,CAAI;IAC9B,OAAO,CAAC,qBAAqB,CAAI;gBAErB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB;IAMnD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,MAAM,IAAI,mBAAmB,CAEhC;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,WAAW,IAAI,IAAI,GAAG,SAAS,CAElC;IAED,IAAI,YAAY,IAAI,IAAI,GAAG,SAAS,CAEnC;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmE9B;;;OAGG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IA8D/F;;OAEG;IACH,UAAU,CACR,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,MAAM,CAAC,cAAc,GAAG,IAAI;IAgB/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC;IAgB1B;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,OAAO,IAAI,iBAAiB;CAgB7B"}
|
package/dist/ssh/connection.js
CHANGED
|
@@ -35,6 +35,9 @@ export class SshConnection {
|
|
|
35
35
|
* Connect to the SSH server.
|
|
36
36
|
*/
|
|
37
37
|
async connect() {
|
|
38
|
+
if (!this._config.username) {
|
|
39
|
+
throw new Error("A username is required to connect (provide one or set User in the ssh config).");
|
|
40
|
+
}
|
|
38
41
|
return new Promise((resolve, reject) => {
|
|
39
42
|
const connectConfig = {
|
|
40
43
|
host: this._config.host,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/ssh/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,MAAM,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/ssh/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import type { SecurityMode } from "./config/schema.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Create all SSH tools for the plugin.
|
|
5
5
|
*/
|
|
6
|
-
export declare function createSshTools(mode?: SecurityMode, maxSessions?: number, defaultTimeout?: number, extraBlocklist?: string[]): Record<string, ToolDefinition>;
|
|
6
|
+
export declare function createSshTools(mode?: SecurityMode, maxSessions?: number, defaultTimeout?: number, extraBlocklist?: string[], sshConfigPath?: string, autoConnect?: boolean): Record<string, ToolDefinition>;
|
|
7
7
|
//# sourceMappingURL=tools.d.ts.map
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAsB/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AA+EtD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,GAAE,YAAqB,EAC3B,WAAW,GAAE,MAAU,EACvB,cAAc,GAAE,MAAW,EAC3B,cAAc,GAAE,MAAM,EAAO,EAC7B,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,GAAE,OAAe,GAC3B,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAmoBhC"}
|
package/dist/tools.js
CHANGED
|
@@ -5,82 +5,145 @@ import { validateCommand } from "./security/validator.js";
|
|
|
5
5
|
import { getPolicy, addBlocklistPattern, removeBlocklistPattern, addAllowlistPattern, removeAllowlistPattern } from "./security/policy.js";
|
|
6
6
|
import { readAuditLog, formatAuditLog, getAuditStats } from "./ssh/audit.js";
|
|
7
7
|
import { sanitizeHost, sanitizeUsername, sanitizePath } from "./ssh/sanitizer.js";
|
|
8
|
+
import { loadSshConfig, findHostConfig, getAutoConnectHosts, expandHomePath, } from "./ssh/config.js";
|
|
8
9
|
import { formatExecResult, formatSessionList, formatConnectResult, formatDisconnectResult, formatCheckResult, formatSecurityPolicy, } from "./display/formatter.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Build an ssh.connect connection config, applying defaults from the
|
|
12
|
+
* ~/.ssh/config file (alias → HostName, User, Port, IdentityFile).
|
|
13
|
+
*/
|
|
14
|
+
function resolveHostConfig(args, sshConfigPath) {
|
|
15
|
+
const loaded = loadSshConfig(sshConfigPath);
|
|
16
|
+
const entry = loaded.entries.length
|
|
17
|
+
? findHostConfig(loaded.entries, args.host)
|
|
18
|
+
: undefined;
|
|
19
|
+
const displayHost = args.host;
|
|
20
|
+
const realHost = entry?.hostName && entry.hostName !== args.host ? entry.hostName : args.host;
|
|
21
|
+
const port = args.port || entry?.port || 22;
|
|
22
|
+
const username = args.username || entry?.user;
|
|
23
|
+
const authMethod = args.auth_method || (entry?.identityFile ? "key" : "password");
|
|
24
|
+
const keyPath = args.key_path || (entry?.identityFile ? expandHomePath(entry.identityFile) : undefined);
|
|
25
|
+
const alias = args.alias || (realHost !== args.host ? args.host : undefined);
|
|
26
|
+
return {
|
|
27
|
+
config: {
|
|
28
|
+
host: realHost,
|
|
29
|
+
port,
|
|
30
|
+
username,
|
|
31
|
+
authMethod,
|
|
32
|
+
password: args.password,
|
|
33
|
+
keyPath,
|
|
34
|
+
passphrase: args.passphrase,
|
|
35
|
+
alias,
|
|
36
|
+
timeout: 10000,
|
|
37
|
+
},
|
|
38
|
+
displayHost,
|
|
39
|
+
resolvedFrom: entry ? loaded.path : undefined,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Auto-connect to every ssh config host that resolves to a real HostName.
|
|
44
|
+
* Best-effort: individual failures are swallowed, and the plugin keeps
|
|
45
|
+
* loading even if no host is reachable.
|
|
46
|
+
*/
|
|
47
|
+
async function startAutoConnect(manager, sshConfigPath) {
|
|
48
|
+
const hosts = getAutoConnectHosts(sshConfigPath);
|
|
49
|
+
for (const host of hosts) {
|
|
50
|
+
try {
|
|
51
|
+
await manager.createSession({
|
|
52
|
+
host: host.hostName,
|
|
53
|
+
port: host.port || 22,
|
|
54
|
+
username: host.user || process.env.USER || process.env.USERNAME || "root",
|
|
55
|
+
authMethod: "key",
|
|
56
|
+
keyPath: host.identityFile ? expandHomePath(host.identityFile) : undefined,
|
|
57
|
+
alias: host.alias,
|
|
58
|
+
timeout: 10000,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Ignore unreachable hosts on auto-connect
|
|
63
|
+
}
|
|
14
64
|
}
|
|
15
|
-
return sessionManager;
|
|
16
65
|
}
|
|
17
66
|
/**
|
|
18
67
|
* Create all SSH tools for the plugin.
|
|
19
68
|
*/
|
|
20
|
-
export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout = 30, extraBlocklist = []) {
|
|
69
|
+
export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout = 30, extraBlocklist = [], sshConfigPath, autoConnect = false) {
|
|
70
|
+
const sessionManager = new SshSessionManager({ maxSessions });
|
|
71
|
+
if (autoConnect) {
|
|
72
|
+
// Best-effort auto-connect to hosts defined in the ssh config.
|
|
73
|
+
// Non-blocking: failures for individual hosts are swallowed and
|
|
74
|
+
// do not prevent the plugin from loading.
|
|
75
|
+
void startAutoConnect(sessionManager, sshConfigPath);
|
|
76
|
+
}
|
|
21
77
|
return {
|
|
22
78
|
// ═══════════════════════════════════════════════════════════════
|
|
23
79
|
// ssh.connect — Establish SSH connection
|
|
24
80
|
// ═══════════════════════════════════════════════════════════════
|
|
25
81
|
"ssh.connect": tool({
|
|
26
82
|
description: "Establish an SSH connection to a remote server. Returns a session_id for use with other ssh.* tools. " +
|
|
27
|
-
"Supports password and key-based authentication. Credentials are never stored in logs or output."
|
|
83
|
+
"Supports password and key-based authentication. Credentials are never stored in logs or output. " +
|
|
84
|
+
"If ssh_config_path is set, host aliases from the ssh config are resolved and their " +
|
|
85
|
+
"User/Port/IdentityFile defaults are applied automatically.",
|
|
28
86
|
args: {
|
|
29
|
-
host: tool.schema.string().describe("Remote server hostname or
|
|
30
|
-
port: tool.schema.number().optional().describe("SSH port (default: 22)"),
|
|
31
|
-
username: tool.schema.string().describe("SSH username"),
|
|
32
|
-
auth_method: tool.schema.enum(["password", "key"]).describe("Authentication method"),
|
|
87
|
+
host: tool.schema.string().describe("Remote server hostname, IP, or ssh config alias"),
|
|
88
|
+
port: tool.schema.number().optional().describe("SSH port (default: 22, or port from ssh config)"),
|
|
89
|
+
username: tool.schema.string().optional().describe("SSH username (default: from ssh config)"),
|
|
90
|
+
auth_method: tool.schema.enum(["password", "key"]).optional().describe("Authentication method (default: key if an identity file is configured, else password)"),
|
|
33
91
|
password: tool.schema.string().optional().describe("Password (only for password auth)"),
|
|
34
|
-
key_path: tool.schema.string().optional().describe("Path to private key file (default: ~/.ssh/id_rsa)"),
|
|
92
|
+
key_path: tool.schema.string().optional().describe("Path to private key file (default: identity file from ssh config, else ~/.ssh/id_rsa)"),
|
|
35
93
|
passphrase: tool.schema.string().optional().describe("Passphrase for the private key"),
|
|
36
94
|
alias: tool.schema.string().optional().describe("Friendly name for this session"),
|
|
37
95
|
},
|
|
38
96
|
async execute(args, ctx) {
|
|
97
|
+
// ── Resolve defaults from the ssh config (alias, user, port, identity) ──
|
|
98
|
+
const { config: resolvedConfig, displayHost, resolvedFrom } = resolveHostConfig(args, sshConfigPath);
|
|
39
99
|
// ── Input validation ──
|
|
40
|
-
const hostCheck = sanitizeHost(
|
|
100
|
+
const hostCheck = sanitizeHost(displayHost);
|
|
41
101
|
if (!hostCheck.clean) {
|
|
42
102
|
return `❌ Invalid host: ${hostCheck.reason}`;
|
|
43
103
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
104
|
+
if (resolvedConfig.username) {
|
|
105
|
+
const userCheck = sanitizeUsername(resolvedConfig.username);
|
|
106
|
+
if (!userCheck.clean) {
|
|
107
|
+
return `❌ Invalid username: ${userCheck.reason}`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
return "❌ A username is required. Provide one or add a User directive in your ssh config.";
|
|
47
112
|
}
|
|
113
|
+
const displayPort = args.port || resolvedConfig.port || 22;
|
|
48
114
|
// ── Ask for permission ──
|
|
49
115
|
await ctx.ask({
|
|
50
116
|
permission: "ssh.connect",
|
|
51
|
-
patterns: [`${
|
|
52
|
-
always: [`${
|
|
117
|
+
patterns: [`${resolvedConfig.username}@${displayHost}:${displayPort}`],
|
|
118
|
+
always: [`${resolvedConfig.username}@${displayHost}:${displayPort}`],
|
|
53
119
|
metadata: {
|
|
54
|
-
host:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
120
|
+
host: displayHost,
|
|
121
|
+
resolved_host: resolvedConfig.host !== displayHost ? resolvedConfig.host : undefined,
|
|
122
|
+
port: displayPort,
|
|
123
|
+
username: resolvedConfig.username,
|
|
124
|
+
auth_method: resolvedConfig.authMethod,
|
|
58
125
|
alias: args.alias,
|
|
126
|
+
ssh_config: resolvedFrom || undefined,
|
|
59
127
|
},
|
|
60
128
|
});
|
|
61
129
|
// ── Connect ──
|
|
62
|
-
const manager =
|
|
63
|
-
const config = {
|
|
64
|
-
host: args.host,
|
|
65
|
-
port: args.port || 22,
|
|
66
|
-
username: args.username,
|
|
67
|
-
authMethod: args.auth_method,
|
|
68
|
-
password: args.password,
|
|
69
|
-
keyPath: args.key_path,
|
|
70
|
-
passphrase: args.passphrase,
|
|
71
|
-
alias: args.alias,
|
|
72
|
-
timeout: 10000,
|
|
73
|
-
};
|
|
130
|
+
const manager = sessionManager;
|
|
74
131
|
try {
|
|
75
|
-
const sessionId = await manager.createSession(
|
|
76
|
-
|
|
132
|
+
const sessionId = await manager.createSession(resolvedConfig);
|
|
133
|
+
const lines = [
|
|
134
|
+
formatConnectResult(sessionId, displayHost, displayPort, resolvedConfig.username, args.alias),
|
|
135
|
+
];
|
|
136
|
+
if (resolvedConfig.host !== displayHost) {
|
|
137
|
+
lines.push(`> Resolved via ssh config: ${displayHost} → ${resolvedConfig.host}`);
|
|
138
|
+
}
|
|
139
|
+
return lines.join("\n");
|
|
77
140
|
}
|
|
78
141
|
catch (error) {
|
|
79
142
|
const msg = error instanceof Error ? error.message : String(error);
|
|
80
143
|
return [
|
|
81
144
|
`## ❌ SSH Connection Failed`,
|
|
82
145
|
"",
|
|
83
|
-
`**Host:** ${
|
|
146
|
+
`**Host:** ${resolvedConfig.username}@${displayHost}:${displayPort}`,
|
|
84
147
|
`**Error:** ${msg}`,
|
|
85
148
|
"",
|
|
86
149
|
"Troubleshooting:",
|
|
@@ -107,7 +170,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
107
170
|
always: [],
|
|
108
171
|
metadata: { session_id: args.session_id },
|
|
109
172
|
});
|
|
110
|
-
const manager =
|
|
173
|
+
const manager = sessionManager;
|
|
111
174
|
const closed = await manager.closeSession(args.session_id);
|
|
112
175
|
if (!closed) {
|
|
113
176
|
return `Session \`${args.session_id}\` not found or already closed.`;
|
|
@@ -122,7 +185,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
122
185
|
description: "List all active SSH sessions with their status, host, and uptime.",
|
|
123
186
|
args: {},
|
|
124
187
|
async execute(_args, _ctx) {
|
|
125
|
-
const manager =
|
|
188
|
+
const manager = sessionManager;
|
|
126
189
|
const sessions = manager.listSessions();
|
|
127
190
|
return formatSessionList(sessions);
|
|
128
191
|
},
|
|
@@ -144,7 +207,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
144
207
|
},
|
|
145
208
|
async execute(args, ctx) {
|
|
146
209
|
// ── Validate session ──
|
|
147
|
-
const manager =
|
|
210
|
+
const manager = sessionManager;
|
|
148
211
|
const connection = manager.getSession(args.session_id);
|
|
149
212
|
if (!connection) {
|
|
150
213
|
return `❌ Session \`${args.session_id}\` not found. Use ssh.list_sessions to see active sessions.`;
|
|
@@ -233,7 +296,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
233
296
|
timeout: tool.schema.number().optional().describe("Timeout per command in seconds"),
|
|
234
297
|
},
|
|
235
298
|
async execute(args, ctx) {
|
|
236
|
-
const manager =
|
|
299
|
+
const manager = sessionManager;
|
|
237
300
|
const connection = manager.getSession(args.session_id);
|
|
238
301
|
if (!connection) {
|
|
239
302
|
return `❌ Session \`${args.session_id}\` not found.`;
|
|
@@ -331,7 +394,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
331
394
|
remote_path: tool.schema.string().describe("Remote destination path"),
|
|
332
395
|
},
|
|
333
396
|
async execute(args, ctx) {
|
|
334
|
-
const manager =
|
|
397
|
+
const manager = sessionManager;
|
|
335
398
|
const connection = manager.getSession(args.session_id);
|
|
336
399
|
if (!connection) {
|
|
337
400
|
return `❌ Session \`${args.session_id}\` not found.`;
|
|
@@ -389,7 +452,7 @@ export function createSshTools(mode = "full", maxSessions = 5, defaultTimeout =
|
|
|
389
452
|
local_path: tool.schema.string().describe("Local destination path"),
|
|
390
453
|
},
|
|
391
454
|
async execute(args, ctx) {
|
|
392
|
-
const manager =
|
|
455
|
+
const manager = sessionManager;
|
|
393
456
|
const connection = manager.getSession(args.session_id);
|
|
394
457
|
if (!connection) {
|
|
395
458
|
return `❌ Session \`${args.session_id}\` not found.`;
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|