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.
ssh_over_sse/__init__.py
ADDED
|
@@ -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,,
|