py2ls 0.1.10.12__py3-none-any.whl → 0.2.7.10__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.
Potentially problematic release.
This version of py2ls might be problematic. Click here for more details.
- py2ls/.DS_Store +0 -0
- py2ls/.git/.DS_Store +0 -0
- py2ls/.git/index +0 -0
- py2ls/.git/logs/refs/remotes/origin/HEAD +1 -0
- py2ls/.git/objects/.DS_Store +0 -0
- py2ls/.git/refs/.DS_Store +0 -0
- py2ls/ImageLoader.py +621 -0
- py2ls/__init__.py +7 -5
- py2ls/apptainer2ls.py +3940 -0
- py2ls/batman.py +164 -42
- py2ls/bio.py +2595 -0
- py2ls/cell_image_clf.py +1632 -0
- py2ls/container2ls.py +4635 -0
- py2ls/corr.py +475 -0
- py2ls/data/.DS_Store +0 -0
- py2ls/data/email/email_html_template.html +88 -0
- py2ls/data/hyper_param_autogluon_zeroshot2024.json +2383 -0
- py2ls/data/hyper_param_tabrepo_2024.py +1753 -0
- py2ls/data/mygenes_fields_241022.txt +355 -0
- py2ls/data/re_common_pattern.json +173 -0
- py2ls/data/sns_info.json +74 -0
- py2ls/data/styles/.DS_Store +0 -0
- py2ls/data/styles/example/.DS_Store +0 -0
- py2ls/data/styles/stylelib/.DS_Store +0 -0
- py2ls/data/styles/stylelib/grid.mplstyle +15 -0
- py2ls/data/styles/stylelib/high-contrast.mplstyle +6 -0
- py2ls/data/styles/stylelib/high-vis.mplstyle +4 -0
- py2ls/data/styles/stylelib/ieee.mplstyle +15 -0
- py2ls/data/styles/stylelib/light.mplstyl +6 -0
- py2ls/data/styles/stylelib/muted.mplstyle +6 -0
- py2ls/data/styles/stylelib/nature-reviews-latex.mplstyle +616 -0
- py2ls/data/styles/stylelib/nature-reviews.mplstyle +616 -0
- py2ls/data/styles/stylelib/nature.mplstyle +31 -0
- py2ls/data/styles/stylelib/no-latex.mplstyle +10 -0
- py2ls/data/styles/stylelib/notebook.mplstyle +36 -0
- py2ls/data/styles/stylelib/paper.mplstyle +290 -0
- py2ls/data/styles/stylelib/paper2.mplstyle +305 -0
- py2ls/data/styles/stylelib/retro.mplstyle +4 -0
- py2ls/data/styles/stylelib/sans.mplstyle +10 -0
- py2ls/data/styles/stylelib/scatter.mplstyle +7 -0
- py2ls/data/styles/stylelib/science.mplstyle +48 -0
- py2ls/data/styles/stylelib/std-colors.mplstyle +4 -0
- py2ls/data/styles/stylelib/vibrant.mplstyle +6 -0
- py2ls/data/tiles.csv +146 -0
- py2ls/data/usages_pd.json +1417 -0
- py2ls/data/usages_sns.json +31 -0
- py2ls/docker2ls.py +5446 -0
- py2ls/ec2ls.py +61 -0
- py2ls/fetch_update.py +145 -0
- py2ls/ich2ls.py +1955 -296
- py2ls/im2.py +8242 -0
- py2ls/image_ml2ls.py +2100 -0
- py2ls/ips.py +33909 -3418
- py2ls/ml2ls.py +7700 -0
- py2ls/mol.py +289 -0
- py2ls/mount2ls.py +1307 -0
- py2ls/netfinder.py +873 -351
- py2ls/nl2ls.py +283 -0
- py2ls/ocr.py +1581 -458
- py2ls/plot.py +10394 -314
- py2ls/rna2ls.py +311 -0
- py2ls/ssh2ls.md +456 -0
- py2ls/ssh2ls.py +5933 -0
- py2ls/ssh2ls_v01.py +2204 -0
- py2ls/stats.py +66 -172
- py2ls/temp20251124.py +509 -0
- py2ls/translator.py +2 -0
- py2ls/utils/decorators.py +3564 -0
- py2ls/utils_bio.py +3453 -0
- {py2ls-0.1.10.12.dist-info → py2ls-0.2.7.10.dist-info}/METADATA +113 -224
- {py2ls-0.1.10.12.dist-info → py2ls-0.2.7.10.dist-info}/RECORD +72 -16
- {py2ls-0.1.10.12.dist-info → py2ls-0.2.7.10.dist-info}/WHEEL +0 -0
py2ls/ssh2ls.md
ADDED
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
# SSH2LS
|
|
2
|
+
|
|
3
|
+
**The Ultimate SSH Connection Manager with Automatic Password-less Setup**
|
|
4
|
+
|
|
5
|
+
https://img.shields.io/badge/python-3.8+-blue.svg
|
|
6
|
+
https://img.shields.io/badge/license-MIT-green.svg
|
|
7
|
+
https://img.shields.io/badge/SSH-Multi--Hop-orange.svg
|
|
8
|
+
https://img.shields.io/badge/Bioinformatics-Friendly-yellow.svg
|
|
9
|
+
|
|
10
|
+
SSH2LS is a powerful, user-friendly tool that simplifies complex SSH connections, especially multi-hop setups like those used in academic research (deNBI), cloud infrastructure, and enterprise environments. **No more manual SSH config editing or password typing!**
|
|
11
|
+
|
|
12
|
+
## Features
|
|
13
|
+
|
|
14
|
+
###**One-Click Password-less Setup**
|
|
15
|
+
|
|
16
|
+
- **Automatic key distribution** - Copies your public key to servers after successful connection test
|
|
17
|
+
- **Smart detection** - Checks if password-less auth already works
|
|
18
|
+
- **Multi-hop support** - Sets up both jumphost and target automatically
|
|
19
|
+
|
|
20
|
+
###**Multi-Hop Magic**
|
|
21
|
+
|
|
22
|
+
- **deNBI/HPC ready** - Perfect for academic cluster access: `laptop → jumphost → compute node`
|
|
23
|
+
- **Floating IP management** - Handle dynamic cloud IPs effortlessly
|
|
24
|
+
- **Agent forwarding** - Secure key forwarding through multiple hops
|
|
25
|
+
|
|
26
|
+
### **Connection Types**
|
|
27
|
+
|
|
28
|
+
- **Direct connections** - Simple `ssh user@host` with automated setup
|
|
29
|
+
- **Jumphost connections** - Complex `local → bastion → target` topologies
|
|
30
|
+
- **Floating IP connections** - Cloud instances with dynamic IP addresses
|
|
31
|
+
|
|
32
|
+
### **File Management**
|
|
33
|
+
|
|
34
|
+
- **Transfer through jumps** - `scp`/`rsync` through bastion hosts
|
|
35
|
+
- **Directory sync** - Upload/download entire directories
|
|
36
|
+
- **Progress tracking** - See transfer status in real-time
|
|
37
|
+
|
|
38
|
+
### **Environment Setup**
|
|
39
|
+
|
|
40
|
+
- **Bioinformatics templates** - Auto-setup nf-core, Apptainer, bioinfo tools
|
|
41
|
+
- **Development environments** - Python, Docker, basic server setup
|
|
42
|
+
- **Custom scripts** - Run batch commands on remote servers
|
|
43
|
+
|
|
44
|
+
### **Security First**
|
|
45
|
+
|
|
46
|
+
- **Strong encryption** - Uses Ed25519/RSA 4096 by default
|
|
47
|
+
- **Agent management** - Automatic SSH agent setup
|
|
48
|
+
- **Permission handling** - Correct file permissions automatically
|
|
49
|
+
|
|
50
|
+
## Installation
|
|
51
|
+
|
|
52
|
+
### Prerequisites
|
|
53
|
+
|
|
54
|
+
- Python 3.8+
|
|
55
|
+
- SSH client (OpenSSH)
|
|
56
|
+
- For password-less setup: `sshpass` (optional but recommended)
|
|
57
|
+
|
|
58
|
+
### Quick Install
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
# Clone the repository
|
|
62
|
+
git clone https://github.com/yourusername/ssh2ls.git
|
|
63
|
+
cd ssh2ls
|
|
64
|
+
|
|
65
|
+
# Install dependencies
|
|
66
|
+
pip install paramiko cryptography pyyaml
|
|
67
|
+
|
|
68
|
+
# Make executable
|
|
69
|
+
chmod +x ssh2ls.py
|
|
70
|
+
|
|
71
|
+
# Run it!
|
|
72
|
+
python ssh2ls.py
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
### Package Manager Install (Coming Soon)
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
# PyPI
|
|
81
|
+
pip install ssh2ls
|
|
82
|
+
|
|
83
|
+
# Homebrew (macOS)
|
|
84
|
+
brew install ssh2ls
|
|
85
|
+
|
|
86
|
+
# Linux (deb/rpm)
|
|
87
|
+
# Check releases page for packages
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## 🚀 Quick Start
|
|
93
|
+
|
|
94
|
+
### Interactive Wizard (Recommended for Beginners)
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
ssh2ls
|
|
98
|
+
# or
|
|
99
|
+
ssh2ls wizard
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
### Real-World Examples
|
|
105
|
+
|
|
106
|
+
#### 1. **Complete deNBI Bioinformatics Setup**
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
# Generate key and share with admin
|
|
110
|
+
ssh2ls setup denbi \
|
|
111
|
+
--jumphost 193.196.20.189 \
|
|
112
|
+
--jumphost-user ubuntu \
|
|
113
|
+
--target 192.168.54.219 \
|
|
114
|
+
--key ~/.ssh/denbi_key
|
|
115
|
+
|
|
116
|
+
# Setup password-less login (will prompt for password)
|
|
117
|
+
ssh2ls passwordless setup denbi
|
|
118
|
+
|
|
119
|
+
# Setup bioinformatics environment
|
|
120
|
+
ssh2ls setup-env denbi --template bioinfo
|
|
121
|
+
|
|
122
|
+
# Transfer sequencing data
|
|
123
|
+
ssh2ls transfer upload denbi \
|
|
124
|
+
./fastq_files/ \
|
|
125
|
+
/home/ubuntu/chipseq_data/
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
#### 2. **Direct Server Connection**
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
# Setup direct connection to a VPS
|
|
134
|
+
ssh2ls direct setup myserver \
|
|
135
|
+
--host 159.69.12.38 \
|
|
136
|
+
--user root \
|
|
137
|
+
--key ~/.ssh/myserver_key
|
|
138
|
+
|
|
139
|
+
# Test and auto-setup password-less
|
|
140
|
+
ssh2ls test myserver
|
|
141
|
+
# Connection successful!
|
|
142
|
+
# Would you like to setup password-less login? [y/N]: y
|
|
143
|
+
# Enter password for root@159.69.12.38:
|
|
144
|
+
# Password-less setup complete!
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
#### 3. **Cloud Infrastructure with Floating IP**
|
|
150
|
+
|
|
151
|
+
bash
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
# Register floating IP
|
|
155
|
+
ssh2ls floating register web-server \
|
|
156
|
+
--floating-ip 203.0.113.10 \
|
|
157
|
+
--fixed-ip 192.168.1.100
|
|
158
|
+
|
|
159
|
+
# Setup connection using floating IP
|
|
160
|
+
ssh2ls setup-with-floating production \
|
|
161
|
+
--floating-ip 203.0.113.10 \
|
|
162
|
+
--fixed-ip 192.168.1.100 \
|
|
163
|
+
--target 10.0.0.50
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
## Command Reference
|
|
169
|
+
|
|
170
|
+
### Core Commands
|
|
171
|
+
|
|
172
|
+
| Command | Description | Example |
|
|
173
|
+
| :-------------------------- | :----------------------------- | :------------------------------------------------------- |
|
|
174
|
+
| `ssh2ls wizard` | Interactive setup wizard | `ssh2ls wizard` |
|
|
175
|
+
| `ssh2ls direct setup` | Setup direct connection | `ssh2ls direct setup myserver --host 1.2.3.4` |
|
|
176
|
+
| `ssh2ls setup` | Setup multi-hop connection | `ssh2ls setup denbi --jumphost 1.2.3.4 --target 5.6.7.8` |
|
|
177
|
+
| `ssh2ls passwordless setup` | Auto-setup password-less login | `ssh2ls passwordless setup denbi` |
|
|
178
|
+
| `ssh2ls connect` | Connect to host | `ssh2ls connect denbi --hop target` |
|
|
179
|
+
| `ssh2ls test` | Test connection | `ssh2ls test denbi` |
|
|
180
|
+
| `ssh2ls list` | List all connections | `ssh2ls list` |
|
|
181
|
+
|
|
182
|
+
### File Operations
|
|
183
|
+
|
|
184
|
+
| Command | Description | Example |
|
|
185
|
+
| :------------------------- | :------------- | :--------------------------------------------------- |
|
|
186
|
+
| `ssh2ls transfer upload` | Upload files | `ssh2ls transfer upload denbi ./data/ ~/remote/` |
|
|
187
|
+
| `ssh2ls transfer download` | Download files | `ssh2ls transfer download denbi ~/results/ ./local/` |
|
|
188
|
+
|
|
189
|
+
### Environment Management
|
|
190
|
+
|
|
191
|
+
| Command | Description | Example |
|
|
192
|
+
| :--------------------- | :----------------------- | :--------------------------------------------- |
|
|
193
|
+
| `ssh2ls setup-env` | Setup remote environment | `ssh2ls setup-env denbi --template bioinfo` |
|
|
194
|
+
| `ssh2ls tunnel create` | Create SSH tunnel | `ssh2ls tunnel create denbi 8080 localhost 80` |
|
|
195
|
+
|
|
196
|
+
### Utility Commands
|
|
197
|
+
|
|
198
|
+
| Command | Description | Example |
|
|
199
|
+
| :--------------- | :------------------- | :---------------------------- |
|
|
200
|
+
| `ssh2ls quick` | Show quick commands | `ssh2ls quick denbi` |
|
|
201
|
+
| `ssh2ls display` | Show instructions | `ssh2ls display --cheatsheet` |
|
|
202
|
+
| `ssh2ls export` | Export configuration | `ssh2ls export ssh` |
|
|
203
|
+
|
|
204
|
+
## Use Cases
|
|
205
|
+
|
|
206
|
+
### Bioinformatics & Research Computing**
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
# Typical academic HPC workflow
|
|
210
|
+
ssh2ls setup hpc \
|
|
211
|
+
--jumphost gateway.university.edu \
|
|
212
|
+
--target compute01.cluster
|
|
213
|
+
|
|
214
|
+
# Auto-setup nf-core environment
|
|
215
|
+
ssh2ls setup-env hpc --template bioinfo
|
|
216
|
+
|
|
217
|
+
# Transfer sequencing data through jumphost
|
|
218
|
+
ssh2ls transfer upload hpc \
|
|
219
|
+
/mnt/sequencing/runs/2024-01/ \
|
|
220
|
+
/scratch/user/chipseq/
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
### **Cloud & DevOps**
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
# Multi-cloud bastion host setup
|
|
229
|
+
ssh2ls setup production \
|
|
230
|
+
--jumphost bastion.aws.vpc \
|
|
231
|
+
--target 10.0.1.100
|
|
232
|
+
|
|
233
|
+
# Floating IP for HA setup
|
|
234
|
+
ssh2ls floating register lb-float \
|
|
235
|
+
--floating-ip 198.51.100.10 \
|
|
236
|
+
--fixed-ip 10.0.2.50
|
|
237
|
+
|
|
238
|
+
# Create monitoring tunnel
|
|
239
|
+
ssh2ls tunnel create prod-monitor 9090 localhost 9090
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
### Enterprise IT**
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
# Departmental access control
|
|
248
|
+
ssh2ls setup finance-servers \
|
|
249
|
+
--jumphost bastion.corp.com \
|
|
250
|
+
--target 172.16.10.50 \
|
|
251
|
+
--target-user finance-admin
|
|
252
|
+
|
|
253
|
+
# Batch user onboarding
|
|
254
|
+
# SSH2LS can be scripted for multiple users
|
|
255
|
+
for user in user1 user2 user3; do
|
|
256
|
+
ssh2ls direct setup $user-server \
|
|
257
|
+
--host server.corp.com \
|
|
258
|
+
--user $user
|
|
259
|
+
done
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
## Configuration
|
|
265
|
+
|
|
266
|
+
### Generated SSH Config
|
|
267
|
+
|
|
268
|
+
SSH2LS creates clean, organized SSH configs:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# SSH Configuration for denbi
|
|
272
|
+
# Generated by ssh2ls on 2024-01-06
|
|
273
|
+
|
|
274
|
+
Host denbi_jumphost
|
|
275
|
+
HostName 193.196.20.189
|
|
276
|
+
User ubuntu
|
|
277
|
+
IdentityFile ~/.ssh/id_ed25519_denbi
|
|
278
|
+
ForwardAgent yes
|
|
279
|
+
ServerAliveInterval 30
|
|
280
|
+
|
|
281
|
+
Host denbi
|
|
282
|
+
HostName 192.168.54.219
|
|
283
|
+
User ubuntu
|
|
284
|
+
ProxyJump denbi_jumphost
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
### Custom Templates
|
|
290
|
+
|
|
291
|
+
Create your own environment templates in `~/.ssh/ssh2ls/templates/`:
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
```yaml
|
|
296
|
+
# ~/.ssh/ssh2ls/templates/myapp.yaml
|
|
297
|
+
name: "My Application Stack"
|
|
298
|
+
description: "Setup for our custom application"
|
|
299
|
+
commands:
|
|
300
|
+
- "sudo apt update"
|
|
301
|
+
- "sudo apt install -y nginx postgresql redis"
|
|
302
|
+
- "git clone https://github.com/company/myapp.git"
|
|
303
|
+
- "cd myapp && pip install -r requirements.txt"
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
## Performance
|
|
309
|
+
|
|
310
|
+
- **Connection testing**: 2-5 seconds per hop
|
|
311
|
+
- **Password-less setup**: 10-30 seconds (including password entry)
|
|
312
|
+
- **File transfer**: Native SSH speeds (no overhead)
|
|
313
|
+
- **Memory usage**: < 50 MB
|
|
314
|
+
|
|
315
|
+
## Development
|
|
316
|
+
|
|
317
|
+
### Project Structure
|
|
318
|
+
|
|
319
|
+
text
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
ssh2ls/
|
|
323
|
+
├── ssh2ls.py # Main application
|
|
324
|
+
├── README.md # This file
|
|
325
|
+
├── requirements.txt # Python dependencies
|
|
326
|
+
├── examples/ # Example configurations
|
|
327
|
+
│ ├── denbi/ # deNBI setup examples
|
|
328
|
+
│ ├── aws/ # AWS multi-VPC examples
|
|
329
|
+
│ └── academic/ # University HPC examples
|
|
330
|
+
└── tests/ # Test suite
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
### Running Tests
|
|
336
|
+
|
|
337
|
+
```
|
|
338
|
+
# Install test dependencies
|
|
339
|
+
pip install pytest pytest-mock
|
|
340
|
+
|
|
341
|
+
# Run tests
|
|
342
|
+
pytest tests/
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
### Contributing
|
|
348
|
+
|
|
349
|
+
1. Fork the repository
|
|
350
|
+
2. Create a feature branch: `git checkout -b feature/amazing-feature`
|
|
351
|
+
3. Commit changes: `git commit -m 'Add amazing feature'`
|
|
352
|
+
4. Push: `git push origin feature/amazing-feature`
|
|
353
|
+
5. Open a Pull Request
|
|
354
|
+
|
|
355
|
+
See [CONTRIBUTING.md](https://contributing.md/) for details.
|
|
356
|
+
|
|
357
|
+
## Platform Support
|
|
358
|
+
|
|
359
|
+
| Platform | Support Level | Notes |
|
|
360
|
+
| :----------------- | :------------ | :---------------------- |
|
|
361
|
+
| **Linux** | ✅ Full | Recommended platform |
|
|
362
|
+
| **macOS** | ✅ Full | Native support |
|
|
363
|
+
| **Windows WSL** | ✅ Full | Best Windows experience |
|
|
364
|
+
| **Windows Native** | ⚠️ Limited | Basic functionality |
|
|
365
|
+
| **BSD/Unix** | ✅ Full | Should work |
|
|
366
|
+
|
|
367
|
+
## How It Works
|
|
368
|
+
|
|
369
|
+
### Password-less Authentication Flow
|
|
370
|
+
|
|
371
|
+
### Multi-Hop Architecture
|
|
372
|
+
|
|
373
|
+
text
|
|
374
|
+
|
|
375
|
+
```
|
|
376
|
+
Local Machine → SSH2LS → Jumphost → Target VM
|
|
377
|
+
│ │ │ │
|
|
378
|
+
├─ Generates ──┤ │ │
|
|
379
|
+
│ SSH config │ │ │
|
|
380
|
+
│ ├─ Manages─┤ │
|
|
381
|
+
│ │ agent │ │
|
|
382
|
+
│ │ forwarding│ │
|
|
383
|
+
└─ Tests ──────┴── all ───┴── hops───┘
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
## FAQ
|
|
389
|
+
|
|
390
|
+
### ❓ **Does SSH2LS store my passwords?**
|
|
391
|
+
|
|
392
|
+
**No!** SSH2LS never stores passwords. They're only used during the password-less setup process and are immediately discarded.
|
|
393
|
+
|
|
394
|
+
### ❓ **Is it safe to use in production?**
|
|
395
|
+
|
|
396
|
+
**Yes!** SSH2LS uses standard SSH protocols and doesn't introduce new security risks. It actually improves security by ensuring proper key management.
|
|
397
|
+
|
|
398
|
+
### ❓ **Can I use it with existing SSH keys?**
|
|
399
|
+
|
|
400
|
+
**Absolutely!** SSH2LS works with your existing `~/.ssh/id_rsa`, `id_ed25519`, or any other SSH keys.
|
|
401
|
+
|
|
402
|
+
### ❓ **What if the server admin hasn't added my key?**
|
|
403
|
+
|
|
404
|
+
Use the password-less setup feature! It will prompt for your password once, then automatically add your key to the server.
|
|
405
|
+
|
|
406
|
+
### ❓ **Does it work with 2FA/MFA?**
|
|
407
|
+
|
|
408
|
+
Currently supports key-based auth. MFA support is planned for a future release.
|
|
409
|
+
|
|
410
|
+
### ❓ **Can I use it in scripts/automation?**
|
|
411
|
+
|
|
412
|
+
**Yes!** All features are available via CLI for scripting. Use `--help` on any command to see options.
|
|
413
|
+
|
|
414
|
+
## 📈 Benchmarks vs Manual Setup
|
|
415
|
+
|
|
416
|
+
| Task | Manual SSH | SSH2LS | Time Saved |
|
|
417
|
+
| :--------------------- | :------------ | :--------- | :--------- |
|
|
418
|
+
| Setup deNBI connection | 15-30 minutes | 2 minutes | 90% |
|
|
419
|
+
| Password-less config | 5-10 minutes | 30 seconds | 85% |
|
|
420
|
+
| File transfer setup | 10 minutes | 1 minute | 90% |
|
|
421
|
+
| Tunnel creation | 5 minutes | 30 seconds | 85% |
|
|
422
|
+
|
|
423
|
+
## 🤝 Community & Support
|
|
424
|
+
|
|
425
|
+
### Getting Help
|
|
426
|
+
|
|
427
|
+
- **GitHub Issues**: Bug reports and feature requests
|
|
428
|
+
- **Discussions**: Q&A and community support
|
|
429
|
+
- **Wiki**: Detailed documentation and tutorials
|
|
430
|
+
|
|
431
|
+
### Related Projects
|
|
432
|
+
|
|
433
|
+
- [sshuttle](https://github.com/sshuttle/sshuttle) - VPN over SSH
|
|
434
|
+
- [mosh](https://mosh.org/) - Mobile Shell
|
|
435
|
+
- [autossh](https://www.harding.motd.ca/autossh/) - Auto-reconnect SSH
|
|
436
|
+
|
|
437
|
+
### Cite SSH2LS
|
|
438
|
+
|
|
439
|
+
If you use SSH2LS in academic work, please cite:
|
|
440
|
+
|
|
441
|
+
bibtex
|
|
442
|
+
|
|
443
|
+
```
|
|
444
|
+
@software{ssh2ls2024,
|
|
445
|
+
title = {SSH2LS: SSH Connection Manager with Automatic Password-less Setup},
|
|
446
|
+
author = {Your Name},
|
|
447
|
+
year = {2024},
|
|
448
|
+
url = {https://github.com/yourusername/ssh2ls}
|
|
449
|
+
}
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
## 📄 License
|
|
455
|
+
|
|
456
|
+
MIT License - see [LICENSE](https://license/) file for details.
|