feat: SSH tunnel support

- Add ssh2 dependency for SSH port forwarding
- NewConnectionDialog: SSH toggle + host/port/user/password/privateKey/passphrase form
- connection.ts: createSshTunnel() with local port forwarding
- Connect ioredis through SSH tunnel when sshEnabled
- Clean up SSH client + tunnel server on disconnect
- i18n keys for all SSH fields (zh-CN + en)
- Add sshPassphrase to all ConnectionConfig types
This commit is contained in:
2026-07-05 16:25:35 +08:00
parent bb32d2d647
commit 6e6f170403
9 changed files with 368 additions and 38 deletions
+6 -2
View File
@@ -8,7 +8,9 @@
"type": "module",
"allowScripts": {
"electron": true,
"esbuild": true
"esbuild": true,
"ssh2@1.17.0": true,
"cpu-features@0.0.10": true
},
"scripts": {
"dev": "electron-vite dev",
@@ -59,10 +61,12 @@
"dependencies": {
"electron-store": "^11.0.2",
"ioredis": "^5.7.0",
"pinia": "^3.0.4"
"pinia": "^3.0.4",
"ssh2": "^1.17.0"
},
"devDependencies": {
"@element-plus/icons-vue": "^2.3.1",
"@types/ssh2": "^1.15.5",
"@vitejs/plugin-vue": "^5.2.0",
"electron": "^43.0.0",
"electron-builder": "^26.15.3",