Skip to content

Releases: tazhate/android-ssh-proxy

SSH Proxy 1.4

Choose a tag to compare

@github-actions github-actions released this 14 Apr 19:27
fix: split tunneling routing and silent SSH disconnect detection

Three related fixes for the split tunneling mode:

1. Added own package (com.example.sshproxy) to VPN allowlist when split
   tunneling is enabled. Without this, the app's IP checker and health
   checks bypassed the tunnel entirely, showing the real IP.

2. Applied VPN-protected socket factory to SSH client via reflection.
   When the app package is in the allowlist, its SSH socket would route
   through the VPN → proxy → SSH creating an infinite loop. protect()
   is called on each socket before connecting to bypass the tunnel.

3. Improved SSH health check to test the actual proxy port (127.0.0.1:httpProxyPort)
   instead of relying on sshj's isConnected/isAuthenticated state. sshj
   returns true even after the TCP session silently drops (server timeout,
   NAT expiry), so the health monitor never triggered reconnection.

Investigated user reports of tunneled apps losing internet when switching
between apps in the foreground, and own IP checker showing real IP.
Reviewed sshj internals, VpnService allowlist semantics, and health
monitor reconnection flow. Spent ~1.5h tracing the root causes.

Context: bugs reported by user after v1.3 split tunneling release.
Tested by building APK; logic verified by code review of routing path.

SSH Proxy 1.3

Choose a tag to compare

@github-actions github-actions released this 13 Apr 08:59
chore: bump version to 1.3 (versionCode 4)

Release 1.3 includes split tunneling (per-app allowlist) feature.

SSH Proxy 1.2

Choose a tag to compare

@github-actions github-actions released this 31 Mar 17:20
v1.2

Release 1.2: fix Huawei Nova 11 crash (NamedParameterSpec)

SSH Proxy 0.3.1

Choose a tag to compare

@github-actions github-actions released this 19 Aug 09:03
2773ff5
v0.3.1

bugfix: widget across different devices behaviour

SSH Proxy 0.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Aug 07:37
24f4dbc
feat: ✨ Add widget, backup, and key storage improvements

BREAKING CHANGE: ⚠️ This update introduces a new, more secure method for storing SSH key passwords using the Android Keystore system. As part of this migration, old, less secure key files will be removed. Please ensure you have a backup of your private keys before updating if you wish to preserve them outside of the app's new encrypted storage.

This commit introduces several new features and improvements:

- 🚀 **Home Screen Widget:** A new widget for the home screen allows for quick connection and disconnection to the VPN. It displays the current connection status with a colored circle.

- 💾 **Backup & Restore:** Users can now export and import their servers and keys. This makes it easy to transfer settings between devices.

- 🔐 **Enhanced Key Storage:** SSH key passwords are now stored more securely using the Android Keystore system. This improves the overall security of the application.

- 🧪 **New Connection Test UI:** The connection testing feature has been refactored into a BottomSheet component, providing a better user experience.

- 🐛 **Bug Fixes & Stability:** This release also includes various bug fixes and improvements to connection stability and error handling.

SSH Proxy 0.2.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 11:51
072cf4f
feat: ✨ Major improvements and fixes

🚀 Aggressive Connection Monitoring & Fast Reconnection
- Reduced connection health check interval to 10 seconds for quicker detection of connection issues.
- Implemented a more responsive reconnection mechanism.

🧪 "Test All Servers" & Latency Testing
- Added a "Test All Servers" feature to test the latency of all servers in the list.
- The test now establishes a real SSH tunnel and runs an HTTP latency test through it for more accurate results.
- The "Test Connection" button now works without an active VPN connection by performing a direct HTTP latency test.

🔑 Host Key Verification Fix
- Fixed an issue where SSH connections would fail due to host key changes.
- Implemented a custom `HostKeyVerifier` that automatically accepts new host keys to improve user experience.

🐛 Bug Fixes & UI Improvements
- Fixed an "Address already in use" error when testing all servers by using random ports for the local proxy.
- Improved the UI for displaying test results.
- The connection timer is now persistent across screen navigation.

SSH Proxy 0.1.8

Choose a tag to compare

@github-actions github-actions released this 13 Aug 14:31
c5e33df
🔍 feat: Implement real-time ping monitoring and smart IP caching

- Add PingMonitor class with automatic latency tracking every 10 seconds
- Implement ConnectionStatus model with ping statistics and quality indicators
- Update HomeFragment UI with real-time ping display and color-coded quality
- Add smart IP caching: 10 minutes for normal, session-long for VPN
- Optimize network requests to avoid API rate limiting (HTTP 429)
- Add reliable IPv4 detection with multiple fallback services
- Integrate ping monitoring with SshProxyService lifecycle
- Update README with comprehensive documentation of new features

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>

SSH Proxy 0.1.7

Choose a tag to compare

@github-actions github-actions released this 13 Aug 13:58
bf44e4a
v0.1.7

🔐 feat: Implement SSH host key validation (Known Hosts) with MITM pro…

SSH Proxy 0.1.6

Choose a tag to compare

@github-actions github-actions released this 13 Aug 13:44
7feb861
feat: Implement Android Keystore encryption for SSH private keys

- Add KeystoreManager class for secure encryption/decryption using Android Keystore
- Private keys are now encrypted with AES-256-GCM and stored securely
- Encryption keys are hardware-protected in TEE/Secure Element
- SSH service now creates temporary decrypted files only during authentication
- Update SshKeyManager to automatically encrypt generated keys
- Add getPrivateKey() method to KeyRepository for decryption
- Remove key import functionality to focus on secure key generation
- Update UI strings to reflect generation-only approach
- Fix SSH authentication to work with encrypted private keys

Security improvements:
- Private keys never stored in plaintext
- Zero-knowledge architecture - even root cannot extract keys
- Temporary files automatically deleted after use
- Hardware-backed encryption on supported devices

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>

SSH Proxy 0.1.5.1

Choose a tag to compare

@github-actions github-actions released this 13 Aug 13:26
20bc743
fix: Improve setup scripts reliability and simplify proxy configuration

- Fix bash variable substitution errors in instruction scripts
- Auto-detect SSH service name (ssh vs sshd) across different OS distributions
- Separate PKG_UPDATE and PKG_INSTALL commands to fix apt-get syntax errors
- Remove Privoxy option, standardize on Tinyproxy only for simplicity
- Add proper error handling and service detection feedback

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>