You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+24-50Lines changed: 24 additions & 50 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,11 +13,11 @@ lssh
13
13
<imgsrc="./images/demo.gif"width="720" />
14
14
</p>
15
15
16
-
lssh is a terminal-native remote access suite for SSH workflows, cloud inventories, and provider-backed connectors.
16
+
`lssh` is a terminal-native remote access suite for SSH workflows, cloud inventories, and provider-backed connectors.
17
17
18
-
It lets you select hosts from OpenSSH config, lssh config, or provider inventories, then operate them through native SSH or connector backends such as AWS SSM, EC2 Instance Connect Endpoint, WinRM, Telnet, and custom providers.
18
+
It lets you select hosts from OpenSSH config, `lssh` config, or provider inventories, then operate them through native SSH or connector backends such as AWS SSM, EC2 Instance Connect Endpoint, WinRM, Telnet, and custom providers.
19
19
20
-
Use it for interactive shells, parallel commands, mux workspaces, file transfer, sync, mount, and monitoring. Connector-backed hosts expose only the operations supported by that connector.
20
+
Use it for interactive shells, parallel commands, mux workspaces, file transfer, sync, mount, and monitoring. Connector-backed hosts expose only the operations their connector supports.
21
21
22
22
- works with your existing SSH config
23
23
- interactive host selection
@@ -60,7 +60,7 @@ lssh
60
60
61
61
Want to generate an `lssh` config from your existing SSH config?
62
62
63
-
```bash id="w2e9m1"
63
+
```bash
64
64
lssh --generate-lssh-conf >~/.lssh.toml
65
65
```
66
66
@@ -121,17 +121,17 @@ For the telnet connector + multi-hop provider flow, use [`demo-telnet-provider/R
121
121
122
122
## OpenSSH config and lssh config
123
123
124
-
lssh supports both your existing OpenSSH config and its own`lssh` config format.
124
+
`lssh` supports both your existing OpenSSH config and its own config format.
125
125
126
-
If you want to get started quickly, you can keep using `~/.ssh/config` as-is. If you want more advanced host metadata and workflow-oriented settings, you can use an `lssh` config instead.
126
+
If you want to get started quickly, you can keep using `~/.ssh/config` as-is. If you want richer host metadata and workflow-oriented settings, you can move to an `lssh` config instead.
127
127
128
128
You can also generate an `lssh` config from your existing SSH config:
129
129
130
130
```bash
131
131
lssh --generate-lssh-conf >~/.lssh.toml
132
132
```
133
133
134
-
And even after moving to `lssh` config, you can still point it at your existing OpenSSH config to load hosts from there:
134
+
Even after moving to `lssh` config, you can still point it at your existing OpenSSH config and load hosts from there:
135
135
136
136
```toml
137
137
[sshconfig.default]
@@ -143,42 +143,18 @@ For more details about config formats and settings, see [docs/configuration.md](
143
143
## Providers
144
144
145
145
`lssh` can work with more than static SSH config entries.
146
-
Providers let it pull hosts from external inventory sources, resolve secrets just before connect, or use non-SSH connection backends such as cloud-managed connectors.
147
-
148
-
Provider capabilities are grouped into a few roles:
149
-
150
-
-`inventory`: generate `server` entries from APIs or cloud inventories
151
-
-`connector`: define how a resolved target is actually reached
152
-
-`secret`: resolve `*_ref` values at execution time
153
-
-`mixed`: combine multiple roles in one provider implementation
146
+
Providers let it pull hosts from external inventory sources, resolve secrets just before connect, and use non-SSH connection backends such as cloud-managed connectors.
154
147
155
-
This is what makes workflows such as cloud inventory lookup, secret-manager-backed credentials, and connector-backed sessions possible without hardcoding them into the base config format.
148
+
At a high level, providers fall into four roles: `inventory`, `connector`, `secret`, and `mixed`.
149
+
That split makes cloud inventory lookup, secret-manager-backed credentials, and connector-backed sessions possible without hardcoding those workflows into the base config format.
156
150
157
151
If you want to try provider-oriented flows locally, start from these demos:
158
152
159
153
-[demo/README.md](./demo/README.md): core SSH, proxy chains, and general multi-host workflow examples
160
154
-[demo-telnet-provider/README.md](./demo-telnet-provider/README.md): provider-managed telnet connector flow, including direct telnet access and telnet behind a double SSH hop
Combine inventory, connector, or secret roles in one provider.
179
-
</td>
180
-
</tr>
181
-
</table>
156
+
For the provider architecture and protocol overview, start with [provider/README.md](./provider/README.md).
157
+
Category details are also documented under [inventory](./provider/inventory/README.md), [connector](./provider/connector/README.md), [secret](./provider/secret/README.md), and [mixed](./provider/mixed/README.md).
182
158
183
159
### Bundled providers
184
160
@@ -239,15 +215,15 @@ These provider implementations are currently bundled in this repository.
Resolve secret references through custom local scripts.
251
227
</td>
252
228
</tr>
253
229
<tr>
@@ -260,11 +236,9 @@ These provider implementations are currently bundled in this repository.
260
236
</tr>
261
237
</table>
262
238
263
-
For the provider architecture and protocol overview, start with [provider/README.md](./provider/README.md).
264
-
265
239
## Tools in the lssh suite
266
240
267
-
The lssh project includes multiple tools for SSH-centered workflows.
241
+
The `lssh` project includes multiple tools for SSH-centered workflows.
268
242
269
243
<table>
270
244
<tr>
@@ -354,14 +328,14 @@ The lssh project includes multiple tools for SSH-centered workflows.
354
328
## Alternatives
355
329
356
330
If you are evaluating `lssh`, these projects are also worth a look.
357
-
They overlap in some workflows, but usually cover a narrower slice of what the `lssh` suite does.
331
+
They overlap with parts of the suite, but each usually covers a narrower slice of the overall workflow.
358
332
359
333
| Project | Closest `lssh` command(s) | Main focus | How it differs from `lssh`|
360
334
| --- | --- | --- | --- |
361
-
|[`sshs`](https://github.com/quantumsheep/sshs)|[`lssh`](./cmd/lssh/README.md)| TUI-based SSH host picker | Similar single-tool host selection UX, but `lssh` also covers parallel execution, forwarding, mux workflow, and provider/connector-backed hosts. |
362
-
|[`ClusterSSH (cssh)`](https://github.com/duncs/clusterssh)|[`lssh -P`](./cmd/lssh/README.md), [`lsmux`](./cmd/lsmux/README.md), [`lsshell`](./cmd/lsshell/README.md)| Multi-host interactive administration | Strong for broadcast typing into multiple terminals; `lsshell` and `lsmux` are closer when you want synchronized shell workflows inside one suite. |
363
-
|[`pssh`](https://github.com/lilydjwg/pssh)|[`lssh -p`](./cmd/lssh/README.md), [`lscp`](./cmd/lscp/README.md), [`lssync`](./cmd/lssync/README.md)| Parallel command execution and transfer tools |Good fit for parallel CLI jobs, while `lssh` adds TUI host selection, interactive workflows, and a more integrated multi-command toolset. |
364
-
|[`tmuxinator`](https://github.com/tmuxinator/tmuxinator)|[`lssh -P`](./cmd/lssh/README.md), [`lsmux`](./cmd/lsmux/README.md)| tmux session layout management | Great for predefined tmux workspaces, but it is not an SSH host picker or transfer tool by itself;`lsmux` is SSH-oriented from the start. |
335
+
|[`sshs`](https://github.com/quantumsheep/sshs)|[`lssh`](./cmd/lssh/README.md)| TUI-based SSH host picker | Similar in spirit to a focused host picker, but `lssh` also covers parallel execution, forwarding, mux workflows, and provider/connector-backed targets. |
336
+
|[`ClusterSSH (cssh)`](https://github.com/duncs/clusterssh)|[`lssh -P`](./cmd/lssh/README.md), [`lsmux`](./cmd/lsmux/README.md), [`lsshell`](./cmd/lsshell/README.md)| Multi-host interactive administration | Strong for broadcast typing into multiple terminals; `lsshell` and `lsmux` are a closer fit when you want synchronized shell workflows inside one suite. |
337
+
|[`pssh`](https://github.com/lilydjwg/pssh)|[`lssh -p`](./cmd/lssh/README.md), [`lscp`](./cmd/lscp/README.md), [`lssync`](./cmd/lssync/README.md)| Parallel command execution and transfer tools |A good fit for parallel CLI jobs, while `lssh` adds TUI host selection, interactive workflows, and a more integrated multi-command toolset. |
338
+
|[`tmuxinator`](https://github.com/tmuxinator/tmuxinator)|[`lssh -P`](./cmd/lssh/README.md), [`lsmux`](./cmd/lsmux/README.md)| tmux session layout management | Great for predefined tmux workspaces, but it is not an SSH host picker or transfer tool by itself.`lsmux` is SSH-oriented from the start. |
365
339
366
340
### How the `lssh` suite is different
367
341
@@ -371,7 +345,7 @@ They overlap in some workflows, but usually cover a narrower slice of what the `
371
345
-[`lsmux`](./cmd/lsmux/README.md) provides a pane-based SSH workspace rather than only session templating.
372
346
-[`lspipe`](./cmd/lspipe/README.md) keeps selected hosts reusable from local pipelines and automation.
Copy file name to clipboardExpand all lines: cmd/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,6 @@ Each command has its own `main.go` and delegates the actual application logic to
14
14
-[`lscp`](./lscp/README.md): A file transfer client that provides an SCP-style interface.
15
15
-[`lssync`](./lssync/README.md): A one-way sync command over SSH/SFTP with optional destination pruning.
16
16
-[`lsdiff`](./lsdiff/README.md): A synchronized TUI diff viewer for comparing remote files across multiple hosts.
17
-
-[`lsshfs`](./lsshfs/README.md): A single-host mount command that uses FUSE on Linux and NFS on macOS. Windows is not supported in `0.10.0`.
17
+
-[`lsshfs`](./lsshfs/README.md): A single-host mount command that uses FUSE on Linux and NFS on macOS. Windows is currently not supported.
18
18
-[`lsmon`](./lsmon/README.md): A TUI monitor for viewing the status of multiple hosts side by side.
19
19
-[`lspipe`](./lspipe/README.md): A persistent pipe-oriented runner for reusing selected SSH hosts from local shell pipelines. FIFO bridge features are Unix-only.
-`lsshfs` uses a different local mount backend on each OS:
105
105
- Linux: FUSE support and a working `fusermount`/FUSE setup are required.
106
106
- macOS: `mount_nfs` is used locally, so the client must allow local NFS mounts.
107
-
- Windows: `lsshfs` is not supported in `0.10.0`.
107
+
- Windows: `lsshfs` is currently not supported.
108
108
- The repository intentionally replaces `github.com/kevinburke/ssh_config` with the vendored fork at `./internal/ssh_config` so the generated config and parser behavior stay in sync with `lssh`.
Copy file name to clipboardExpand all lines: provider/connector/README.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,19 @@
1
1
Connector Providers
2
2
===================
3
3
4
-
Connector providers are not implemented yet, but this directory is reserved for the provider type that describes how a resolved target can actually be used.
4
+
Connector providers describe how a resolved target can actually be used once inventory and config resolution are complete.
5
+
This repository already includes working connector-capable providers and mixed providers that expose connector behavior.
5
6
6
7
This document uses `connector` as the provider category name.
7
8
If older discussion or notes use the spelling `connecter`, they refer to the same design direction.
0 commit comments