@p0security/cli 0.18.10 → 0.18.12

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.
Files changed (45) hide show
  1. package/README.md +8 -0
  2. package/build/dist/commands/ls.js +21 -23
  3. package/build/dist/commands/ls.js.map +1 -1
  4. package/build/dist/commands/shared/ssh.d.ts +6 -2
  5. package/build/dist/commands/shared/ssh.js +5 -5
  6. package/build/dist/commands/shared/ssh.js.map +1 -1
  7. package/build/dist/commands/ssh-resolve.js +9 -3
  8. package/build/dist/commands/ssh-resolve.js.map +1 -1
  9. package/build/dist/common/__mocks__/keys.d.ts +2 -0
  10. package/build/dist/common/__mocks__/keys.js +5 -1
  11. package/build/dist/common/__mocks__/keys.js.map +1 -1
  12. package/build/dist/common/keys.d.ts +15 -0
  13. package/build/dist/common/keys.js +85 -8
  14. package/build/dist/common/keys.js.map +1 -1
  15. package/build/dist/drivers/api.d.ts +6 -6
  16. package/build/dist/drivers/api.js +53 -51
  17. package/build/dist/drivers/api.js.map +1 -1
  18. package/build/dist/opentelemetry/instrumentation.js +6 -14
  19. package/build/dist/opentelemetry/instrumentation.js.map +1 -1
  20. package/build/dist/plugins/aws/idc/index.js +5 -1
  21. package/build/dist/plugins/aws/idc/index.js.map +1 -1
  22. package/build/dist/plugins/aws/ssh.js +15 -4
  23. package/build/dist/plugins/aws/ssh.js.map +1 -1
  24. package/build/dist/plugins/aws/types.d.ts +2 -0
  25. package/build/dist/plugins/azure/keygen.d.ts +0 -4
  26. package/build/dist/plugins/azure/keygen.js +1 -13
  27. package/build/dist/plugins/azure/keygen.js.map +1 -1
  28. package/build/dist/plugins/azure/ssh.js +6 -5
  29. package/build/dist/plugins/azure/ssh.js.map +1 -1
  30. package/build/dist/plugins/google/ssh.js +1 -1
  31. package/build/dist/plugins/google/ssh.js.map +1 -1
  32. package/build/dist/plugins/self-hosted/keygen.d.ts +6 -0
  33. package/build/dist/plugins/self-hosted/keygen.js +39 -0
  34. package/build/dist/plugins/self-hosted/keygen.js.map +1 -0
  35. package/build/dist/plugins/self-hosted/ssh.d.ts +1 -0
  36. package/build/dist/plugins/self-hosted/ssh.js +55 -16
  37. package/build/dist/plugins/self-hosted/ssh.js.map +1 -1
  38. package/build/dist/plugins/ssh/index.js +11 -5
  39. package/build/dist/plugins/ssh/index.js.map +1 -1
  40. package/build/dist/plugins/ssh/shared.d.ts +4 -0
  41. package/build/dist/plugins/ssh/shared.js +38 -0
  42. package/build/dist/plugins/ssh/shared.js.map +1 -0
  43. package/build/dist/types/ssh.d.ts +11 -3
  44. package/build/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +6 -4
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -8,8 +31,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
31
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
32
  });
10
33
  };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
11
37
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.selfHostedSshProvider = void 0;
38
+ exports.selfHostedSshProvider = exports.SELF_HOSTED_CERT_FILENAME = void 0;
13
39
  /** Copyright © 2024-present P0 Security
14
40
 
15
41
  This file is part of @p0security/cli
@@ -22,7 +48,12 @@ You should have received a copy of the GNU General Public License along with @p0
22
48
  **/
23
49
  const ssh_1 = require("../../commands/shared/ssh");
24
50
  const keys_1 = require("../../common/keys");
25
- const api_1 = require("../../drivers/api");
51
+ const shared_1 = require("../ssh/shared");
52
+ const keygen_1 = require("./keygen");
53
+ const fs = __importStar(require("fs/promises"));
54
+ const node_path_1 = __importDefault(require("node:path"));
55
+ // We pass in the name of the certificate file to generate
56
+ exports.SELF_HOSTED_CERT_FILENAME = "p0cli-self-hosted-ssh-cert.pub";
26
57
  const PROPAGATION_TIMEOUT_LIMIT_MS = 2 * 60 * 1000;
27
58
  const unprovisionedAccessPatterns = [
28
59
  { pattern: /Permission denied \(publickey\)/ },
@@ -46,9 +77,29 @@ exports.selfHostedSshProvider = {
46
77
  }
47
78
  return undefined;
48
79
  },
49
- generateKeys: (_) => __awaiter(void 0, void 0, void 0, function* () {
80
+ generateKeys: (authn, _request, options) => __awaiter(void 0, void 0, void 0, function* () {
81
+ const { path: keyPath } = yield (0, shared_1.createTempDirectoryForKeys)();
82
+ const { publicKey } = yield (0, keys_1.createKeyPair)();
83
+ const signedCertificate = yield (0, keygen_1.generateSelfHostedCertificate)(authn, Object.assign(Object.assign({}, options), { publicKey }));
84
+ const certificatePath = node_path_1.default.join(keyPath, exports.SELF_HOSTED_CERT_FILENAME);
85
+ yield fs.writeFile(certificatePath, signedCertificate);
86
+ return {
87
+ certificatePath,
88
+ };
89
+ }),
90
+ setup: (authn, _request, options) => __awaiter(void 0, void 0, void 0, function* () {
91
+ const { path: keyPath, cleanup: sshKeyPathCleanup } = yield (0, shared_1.createTempDirectoryForKeys)();
92
+ const { publicKey } = yield (0, keys_1.createKeyPair)();
93
+ const signedCertificate = yield (0, keygen_1.generateSelfHostedCertificate)(authn, {
94
+ debug: options.debug,
95
+ requestId: options.requestId,
96
+ publicKey,
97
+ });
98
+ const sshCertificateKeyPath = node_path_1.default.join(keyPath, exports.SELF_HOSTED_CERT_FILENAME);
99
+ yield fs.writeFile(sshCertificateKeyPath, signedCertificate);
50
100
  return {
51
- privateKeyPath: keys_1.PRIVATE_KEY_PATH,
101
+ sshOptions: [`CertificateFile=${sshCertificateKeyPath}`],
102
+ teardown: sshKeyPathCleanup,
52
103
  };
53
104
  }),
54
105
  proxyCommand: (request, port) => {
@@ -64,17 +115,5 @@ exports.selfHostedSshProvider = {
64
115
  },
65
116
  unprovisionedAccessPatterns,
66
117
  toCliRequest: (request) => __awaiter(void 0, void 0, void 0, function* () { return (Object.assign(Object.assign({}, request), { cliLocalData: undefined })); }),
67
- submitPublicKey(authn, request, requestId, publicKey) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- if (request.generated.publicKey) {
70
- if (request.generated.publicKey !== publicKey) {
71
- throw "Public key mismatch. Please revoke the request and try again.";
72
- }
73
- }
74
- else {
75
- yield (0, api_1.submitPublicKey)(authn, { publicKey, requestId });
76
- }
77
- });
78
- },
79
118
  };
80
119
  //# sourceMappingURL=ssh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/plugins/self-hosted/ssh.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,mDAA0D;AAC1D,4CAAqD;AACrD,2CAAoD;AAIpD,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD,MAAM,2BAA2B,GAAG;IAClC,EAAE,OAAO,EAAE,iCAAiC,EAAE;IAC9C;QACE,mEAAmE;QACnE,OAAO,EAAE,uCAAuC;KACjD;CACO,CAAC;AAEE,QAAA,qBAAqB,GAI9B;IACF,kBAAkB,EAAE,GAAS,EAAE,kDAAC,OAAA,SAAS,CAAA,GAAA;IACzC,aAAa,EAAE,GAAS,EAAE,kDAAE,CAAC,CAAA;IAE7B,YAAY,EAAE,aAAa;IAE3B,oBAAoB,EAAE,wCAAwC;IAE9D,oBAAoB,EAAE,4BAA4B;IAElD,4BAA4B,EAAE,CAAC,OAAO,EAAE,EAAE;QACxC,IAAI,IAAA,mBAAa,EAAC,OAAO,CAAC,EAAE;YAC1B,uCACK,OAAO;gBACV,6GAA6G;gBAC7G,6HAA6H;gBAC7H,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,CAAC,IAAI,CAAC,IACjB;SACH;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,YAAY,EAAE,CAAO,CAAC,EAAE,EAAE;QACxB,OAAO;YACL,cAAc,EAAE,uBAAgB;SACjC,CAAC;IACJ,CAAC,CAAA;IAED,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS;IAE9B,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE;QACxB,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ;YACxC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,aAAa;YAC9C,IAAI,EAAE,aAAa;SACpB,CAAC;IACJ,CAAC;IAED,2BAA2B;IAE3B,YAAY,EAAE,CAAO,OAAO,EAAE,EAAE,kDAAC,OAAA,iCAAM,OAAO,KAAE,YAAY,EAAE,SAAS,IAAG,CAAA,GAAA;IAEpE,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;;YACxD,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE;gBAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE;oBAC7C,MAAM,+DAA+D,CAAC;iBACvE;aACF;iBAAM;gBACL,MAAM,IAAA,qBAAe,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;aACxD;QACH,CAAC;KAAA;CACF,CAAC"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/plugins/self-hosted/ssh.ts"],"names":[],"mappings":"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"}
@@ -175,9 +175,9 @@ function spawnSshNode(options) {
175
175
  });
176
176
  });
177
177
  }
178
- const createCommand = (data, args, setupData, proxyCommand) => {
178
+ const createCommand = (request, args, setupData, proxyCommand) => {
179
179
  var _a;
180
- addCommonArgs(args, proxyCommand, setupData);
180
+ addCommonArgs(args, proxyCommand, setupData, request);
181
181
  const sshOptionsOverrides = (_a = setupData === null || setupData === void 0 ? void 0 : setupData.sshOptions) !== null && _a !== void 0 ? _a : [];
182
182
  const port = setupData === null || setupData === void 0 ? void 0 : setupData.port;
183
183
  const argsOverride = sshOptionsOverrides.flatMap((opt) => ["-o", opt]);
@@ -200,7 +200,7 @@ const createCommand = (data, args, setupData, proxyCommand) => {
200
200
  ...(args.sshOptions ? args.sshOptions : []),
201
201
  ...argsOverride,
202
202
  ...(port ? ["-p", port] : []),
203
- `${data.linuxUserName}@${data.id}`,
203
+ `${request.linuxUserName}@${request.id}`,
204
204
  ...(args.command ? [args.command] : []),
205
205
  ...args.arguments.map((argument) =>
206
206
  // escape all double quotes (") in commands such as `p0 ssh <instance>> echo 'hello; "world"'` because we
@@ -213,7 +213,7 @@ const createCommand = (data, args, setupData, proxyCommand) => {
213
213
  *
214
214
  * These common args are only added if they have not been explicitly specified by the end user.
215
215
  */
216
- const addCommonArgs = (args, sshProviderProxyCommand, setupData) => {
216
+ const addCommonArgs = (args, sshProviderProxyCommand, setupData, data) => {
217
217
  var _a;
218
218
  const sshOptions = args.sshOptions ? args.sshOptions : [];
219
219
  const identityFileOptionExists = sshOptions.some((opt, idx) => {
@@ -235,6 +235,11 @@ const addCommonArgs = (args, sshProviderProxyCommand, setupData) => {
235
235
  if (!userSpecifiedProxyCommand && sshProviderProxyCommand.length > 0) {
236
236
  sshOptions.push("-o", `ProxyCommand=${sshProviderProxyCommand.join(" ")}`);
237
237
  }
238
+ const userKnownHostsFileOptionExists = sshOptions.some((opt, idx) => { var _a; return opt === "-o" && ((_a = sshOptions[idx + 1]) === null || _a === void 0 ? void 0 : _a.startsWith("UserKnownHostsFile")); });
239
+ if (!userKnownHostsFileOptionExists) {
240
+ const knownHostsFile = (0, keys_1.getKnownHostsFilePath)(data.id);
241
+ sshOptions.push("-o", `UserKnownHostsFile=${knownHostsFile}`);
242
+ }
238
243
  // Force verbose output from SSH so we can parse the output
239
244
  const verboseOptionExists = sshOptions.some((opt) => opt === "-v");
240
245
  if (!verboseOptionExists) {
@@ -301,7 +306,8 @@ const sshOrScp = (args) => __awaiter(void 0, void 0, void 0, function* () {
301
306
  }
302
307
  const abortController = new AbortController();
303
308
  const credential = yield sshProvider.cloudProviderLogin(authn, request);
304
- const setupData = yield ((_a = sshProvider.setup) === null || _a === void 0 ? void 0 : _a.call(sshProvider, request, {
309
+ const setupData = yield ((_a = sshProvider.setup) === null || _a === void 0 ? void 0 : _a.call(sshProvider, authn, request, {
310
+ requestId,
305
311
  abortController,
306
312
  debug,
307
313
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/ssh/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/ssh/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const createTempDirectoryForKeys: () => Promise<{
2
+ path: string;
3
+ cleanup: () => Promise<void>;
4
+ }>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.createTempDirectoryForKeys = void 0;
16
+ /** Copyright © 2024-present P0 Security
17
+
18
+ This file is part of @p0security/cli
19
+
20
+ @p0security/cli is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.
21
+
22
+ @p0security/cli is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
23
+
24
+ You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
25
+ **/
26
+ const tmp_promise_1 = __importDefault(require("tmp-promise"));
27
+ const createTempDirectoryForKeys = () => __awaiter(void 0, void 0, void 0, function* () {
28
+ // unsafeCleanup lets us delete the directory even if there are still files in it, which is fine since the
29
+ // files are no longer needed once we've authenticated to the remote system.
30
+ const { path, cleanup } = yield tmp_promise_1.default.dir({
31
+ mode: 0o700,
32
+ prefix: "p0cli-",
33
+ unsafeCleanup: true,
34
+ });
35
+ return { path, cleanup };
36
+ });
37
+ exports.createTempDirectoryForKeys = createTempDirectoryForKeys;
38
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/plugins/ssh/shared.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,8DAA8B;AAEvB,MAAM,0BAA0B,GAAG,GAGvC,EAAE;IACH,0GAA0G;IAC1G,4EAA4E;IAC5E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAG,CAAC,GAAG,CAAC;QACtC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,QAAQ;QAChB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC,CAAA,CAAC;AAbW,QAAA,0BAA0B,8BAarC"}
@@ -51,7 +51,8 @@ export type SshProvider<PR extends PluginSshRequest = PluginSshRequest, O extend
51
51
  preTestAccessPropagationArgs: (cmdArgs: CommandArgs) => CommandArgs | undefined;
52
52
  /** Perform any setup required before running the SSH command. Returns a list of additional arguments to pass to the
53
53
  * SSH command. */
54
- setup?: (request: SR, options: {
54
+ setup?: (authn: Authn, request: SR, options: {
55
+ requestId: string;
55
56
  abortController: AbortController;
56
57
  debug?: boolean;
57
58
  }) => Promise<SshAdditionalSetup>;
@@ -62,11 +63,18 @@ export type SshProvider<PR extends PluginSshRequest = PluginSshRequest, O extend
62
63
  teardown: () => Promise<void>;
63
64
  port: string;
64
65
  }>;
66
+ saveHostKeys?: (request: SR, options?: {
67
+ debug?: boolean;
68
+ }) => Promise<{
69
+ alias: string;
70
+ path: string;
71
+ } | undefined>;
65
72
  submitPublicKey?: (authn: Authn, request: PR, requestId: string, publicKey: string) => Promise<void>;
66
- generateKeys?: (request: SR, options?: {
73
+ generateKeys?: (authn: Authn, request: SR, options: {
74
+ requestId: string;
67
75
  debug?: boolean;
68
76
  }) => Promise<{
69
- privateKeyPath: string;
77
+ privateKeyPath?: string;
70
78
  certificatePath?: string;
71
79
  }>;
72
80
  /** Returns the command and its arguments that are going to be injected as the ssh ProxyCommand option */