@abhiseck/zssh 0.0.1 → 1.0.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 +11 -11
- package/package.json +4 -4
- package/src/commands/list.ts +1 -1
- package/src/commands/sync.ts +4 -4
- package/src/lib/config.ts +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# zssh - SSH Chain
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**zssh** is a modern, cross-platform CLI tool to manage and connect to your SSH servers with encrypted local storage and cloud sync capabilities.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
## Installation
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npm install -g
|
|
16
|
+
npm install -g @abhiseck/zssh
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Usage
|
|
@@ -21,7 +21,7 @@ npm install -g sshc
|
|
|
21
21
|
### Add a Connection
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
|
|
24
|
+
zssh add
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
Follow the interactive prompts to save your server details.
|
|
@@ -29,7 +29,7 @@ Follow the interactive prompts to save your server details.
|
|
|
29
29
|
### List Connections
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
|
|
32
|
+
zssh list
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Displays a table of all saved connections.
|
|
@@ -37,15 +37,15 @@ Displays a table of all saved connections.
|
|
|
37
37
|
### Connect
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
|
|
40
|
+
zssh connect <alias_or_id>
|
|
41
41
|
# Example:
|
|
42
|
-
|
|
42
|
+
zssh connect my-server
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
### Remove a Connection
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
|
|
48
|
+
zssh remove <alias_or_id>
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
### Cloud Sync
|
|
@@ -55,18 +55,18 @@ To enable cloud sync, you need a GitHub Personal Access Token (PAT) with `gist`
|
|
|
55
55
|
**Save to Cloud:**
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
|
-
|
|
58
|
+
zssh save
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
**Sync from Cloud:**
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
|
-
|
|
64
|
+
zssh sync
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
## Security
|
|
68
68
|
|
|
69
|
-
Your configuration is stored in `~/.
|
|
69
|
+
Your configuration is stored in `~/.zssh.json`. The entire content is encrypted. You will be prompted for your master password when running commands.
|
|
70
70
|
|
|
71
71
|
## Requirements
|
|
72
72
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abhiseck/zssh",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
],
|
|
24
24
|
"repository": {
|
|
25
25
|
"type": "git",
|
|
26
|
-
"url": "git+https://github.com/iamalipe/
|
|
26
|
+
"url": "git+https://github.com/iamalipe/zssh.git"
|
|
27
27
|
},
|
|
28
28
|
"bugs": {
|
|
29
|
-
"url": "https://github.com/iamalipe/
|
|
29
|
+
"url": "https://github.com/iamalipe/zssh/issues"
|
|
30
30
|
},
|
|
31
|
-
"homepage": "https://github.com/iamalipe/
|
|
31
|
+
"homepage": "https://github.com/iamalipe/zssh#readme",
|
|
32
32
|
"engines": {
|
|
33
33
|
"node": ">=18"
|
|
34
34
|
},
|
package/src/commands/list.ts
CHANGED
|
@@ -7,7 +7,7 @@ export async function listCommand(configManager: ConfigManager) {
|
|
|
7
7
|
|
|
8
8
|
if (connections.length === 0) {
|
|
9
9
|
console.log(
|
|
10
|
-
chalk.yellow('No connections found. Use "
|
|
10
|
+
chalk.yellow('No connections found. Use "zssh add" to add one.'),
|
|
11
11
|
);
|
|
12
12
|
return;
|
|
13
13
|
}
|
package/src/commands/sync.ts
CHANGED
|
@@ -35,7 +35,7 @@ export async function saveCommand(configManager: ConfigManager) {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
const files = {
|
|
38
|
-
"
|
|
38
|
+
"zssh_config.lock": {
|
|
39
39
|
content: encryptedContent,
|
|
40
40
|
},
|
|
41
41
|
};
|
|
@@ -58,7 +58,7 @@ export async function saveCommand(configManager: ConfigManager) {
|
|
|
58
58
|
const response = await axios.post(
|
|
59
59
|
`${GITHUB_API}/gists`,
|
|
60
60
|
{
|
|
61
|
-
description: "
|
|
61
|
+
description: "ZSSH Encrypted Config",
|
|
62
62
|
public: false,
|
|
63
63
|
files,
|
|
64
64
|
},
|
|
@@ -102,9 +102,9 @@ export async function syncCommand(configManager: ConfigManager) {
|
|
|
102
102
|
headers: { Authorization: `token ${token}` },
|
|
103
103
|
});
|
|
104
104
|
|
|
105
|
-
const file = response.data.files["
|
|
105
|
+
const file = response.data.files["zssh_config.lock"];
|
|
106
106
|
if (!file) {
|
|
107
|
-
console.log(chalk.red("Invalid Gist:
|
|
107
|
+
console.log(chalk.red("Invalid Gist: zssh_config.lock not found."));
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
110
110
|
|
package/src/lib/config.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as path from "path";
|
|
|
4
4
|
import { decrypt, encrypt } from "./crypto";
|
|
5
5
|
import { Config, SSHConnection } from "./types";
|
|
6
6
|
|
|
7
|
-
const CONFIG_PATH = path.join(os.homedir(), ".
|
|
7
|
+
const CONFIG_PATH = path.join(os.homedir(), ".zssh.json");
|
|
8
8
|
|
|
9
9
|
export class ConfigManager {
|
|
10
10
|
private config: Config;
|