ssh-over-sse 0.1.0__py3-none-any.whl

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.
@@ -0,0 +1,3 @@
1
+ """SSH over HTTPS/SSE. Install the cli, gateway, or all extra to select commands."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,137 @@
1
+ Metadata-Version: 2.5
2
+ Name: ssh-over-sse
3
+ Version: 0.1.0
4
+ Summary: Use SSH through an HTTPS gateway with a local CLI, a gateway, or both
5
+ Requires-Python: >=3.12
6
+ Provides-Extra: all
7
+ Requires-Dist: ssh-over-sse-cli==0.1.0; extra == 'all'
8
+ Requires-Dist: ssh-over-sse-gateway==0.1.0; extra == 'all'
9
+ Provides-Extra: cli
10
+ Requires-Dist: ssh-over-sse-cli==0.1.0; extra == 'cli'
11
+ Provides-Extra: gateway
12
+ Requires-Dist: ssh-over-sse-gateway==0.1.0; extra == 'gateway'
13
+ Description-Content-Type: text/markdown
14
+
15
+ # ssh-over-sse
16
+
17
+ Use your usual SSH commands through an HTTPS gateway. Install **ssh-sse-cli** on
18
+ your computer and **ssh-sse-gateway** on a host that can reach your SSH servers.
19
+
20
+ ## Install
21
+
22
+ Requires Python 3.12 or newer and OpenSSH. The client supports Linux and macOS.
23
+ The gateway needs `ssh-keygen` available.
24
+
25
+ Choose the commands you need with pip:
26
+
27
+ | Install | Commands |
28
+ | --- | --- |
29
+ | `pip install 'ssh-over-sse[cli]'` | `ssh-sse-cli` |
30
+ | `pip install 'ssh-over-sse[gateway]'` | `ssh-sse-gateway` |
31
+ | `pip install 'ssh-over-sse[all]'` | Both |
32
+
33
+ `ssh-over-sse[cli,gateway]` also installs both. Select an option when installing;
34
+ the base package alone does not install commands.
35
+
36
+ Or use uv to install either command as a tool:
37
+
38
+ ```sh
39
+ uv tool install --python 3.12 ssh-over-sse-cli
40
+ uv tool install --python 3.12 ssh-over-sse-gateway
41
+ ```
42
+
43
+ Supported keys are Ed25519, RSA (2048–8192 bits), and ECDSA (P-256, P-384, P-521).
44
+ Your private key stays on your computer. Load encrypted keys into `ssh-agent`
45
+ before connecting.
46
+
47
+ ## Connect
48
+
49
+ Ask your administrator for the gateway URL and an allowed SSH destination.
50
+ Add an entry to your SSH configuration using your own values:
51
+
52
+ ```sshconfig
53
+ Host my-server
54
+ HostName 192.0.2.20
55
+ Port 22
56
+ User alice
57
+ IdentityFile ~/.ssh/id_ed25519
58
+ IdentitiesOnly yes
59
+ StrictHostKeyChecking yes
60
+ ProxyCommand ssh-sse-cli --url https://gateway.example.com --ssh-host %n
61
+ ```
62
+
63
+ The client reads the destination, port, user, and identity from that host entry.
64
+ Use the gateway's root URL; no additional path is needed.
65
+
66
+ Connect and transfer files normally:
67
+
68
+ ```sh
69
+ ssh my-server
70
+ scp report.txt my-server:report.txt
71
+ sftp my-server
72
+ rsync -e ssh report.txt my-server:report.txt
73
+ ```
74
+
75
+ Your public key must be authorized by both the gateway and destination server.
76
+ Verify the destination's host key before your first connection.
77
+
78
+ ## Check gateway access
79
+
80
+ Open the gateway URL in a browser to see its landing page, then check your key:
81
+
82
+ ```sh
83
+ ssh-sse-cli --url https://gateway.example.com check
84
+ ```
85
+
86
+ The default identity is `~/.ssh/id_ed25519`. Select another key with `-i`, or use
87
+ `--ssh-host my-server` to read its identity from your SSH configuration:
88
+
89
+ ```sh
90
+ ssh-sse-cli --url https://gateway.example.com -i ~/.ssh/id_ecdsa check
91
+ ssh-sse-cli --url https://gateway.example.com --ssh-host my-server check
92
+ ```
93
+
94
+ Success prints `Gateway SSH key authentication succeeded.` and exits with status
95
+ 0. Failure exits with status 1. This checks gateway access; destination access is
96
+ verified when you connect. Direct backend key checks also accept an HTTP URL.
97
+ SSH connections use HTTPS.
98
+
99
+ ## Run a gateway
100
+
101
+ Save your public HTTPS URL and allowed destinations in
102
+ `~/.config/ssh-over-sse/gateway.yaml`:
103
+
104
+ ```yaml
105
+ server:
106
+ audience: https://gateway.example.com
107
+ listen: 0.0.0.0:7010
108
+ ingress_network_restricted: true
109
+ targets:
110
+ - host: 192.0.2.20
111
+ ports: [22]
112
+ ssh_users: [alice]
113
+ ```
114
+
115
+ Authorize users' public keys in the gateway account's `~/.ssh/authorized_keys`.
116
+ Restrict the configuration file to its owner. Limit backend access to your trusted
117
+ network before setting `ingress_network_restricted: true`.
118
+
119
+ Validate the configuration, then start:
120
+
121
+ ```sh
122
+ ssh-sse-gateway --check-config
123
+ ssh-sse-gateway
124
+ ```
125
+
126
+ With OCI providing HTTPS, the gateway uses plain HTTP on port **7010** and needs
127
+ no TLS certificate. The default listener is `127.0.0.1:7010`; the example above
128
+ accepts ingress on all interfaces.
129
+
130
+ ## Help
131
+
132
+ ```sh
133
+ ssh-sse-cli --help
134
+ ssh-sse-gateway --help
135
+ ```
136
+
137
+ Release notes are in `CHANGELOG.md`.
@@ -0,0 +1,4 @@
1
+ ssh_over_sse/__init__.py,sha256=PMFAUQ9-DS1CjwB0s9TKoTvo-LPRT3FHNHEwIZrZLbk,108
2
+ ssh_over_sse-0.1.0.dist-info/METADATA,sha256=PVHDqkxSDykWojJyzsz210AzPE7xrZx2PUhOL6mwixc,4032
3
+ ssh_over_sse-0.1.0.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
4
+ ssh_over_sse-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.33.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any